Duplicating means that you change its name (and maybe some attributes) because you have 2 physical tables in the database with the same or almost the same structure and you don't want to re-import or create everything manually. But you'll always have to have 2 objects since 2 physical table representations in the RPD should never point to the same physical object in the database. That's what aliases are for.
Aliases as you can already imagine now are there to instantiate a single physical object multiple times in the RPD and use it in different ways. For example your ACCOUNTS table may contain multiple types of accounts and via aliasing you can specify precisely which kind of relationship the account has with the fact ba splitting it into "Ordering Account", "Billing Account" and "Ship to Account". (Just an example.)
Aliasing hereby allows one single physical object to be referenced and used which means that also all structural changes coming from the source - like renamed columns, data type changes, new columns - have to be maintained just once instead of multiple times.
major advantage of alias table over duplicates to get rid of circular joins. you can refer same table with different means. For example you have a fact table which has sale date and purchase date and you need both the keys needs to be joined with date dimension . Create alias and join.
was that basically an "AOL" of my earlier answer?