Here is a reason to use an alias in its simplest form. Lets say I have a system with one input module. To address a push button that I have connected to the first input on that module in the program, I have to refer to it as "Local:1:I.Data.0". Every time I want to use that in a rung I have type that out. Yuuck. So lets create a bool tag that aliases that input point and name it "PB1". "PB1" is now an alias to "Local:1:I.Data.0". Now when I build a rung, I just type in PB1 where I want to use that input point. RSLogix5K now associates "PB1" with "Local:2:I.Data.0".
A nice feature to that example is that if I know what components are in a system, but the hardware design hasn't been finished, I can start the logic by creating simple un-aliased tags, such as "PB1", and when the design is complete I can edit those tag properties and assign them aliases to actual inputs - I don't have to edit the logic for the newly resolved addresses I was waiting on.