Hi guys, I was away on vacation so hasn't been around to make comments about the entire discussion. I will try to sumarize here some comments that go across several messages I have read today.
The current <antlib> provides a way for the user of a particular antlib to rename one or more elements that are in conflict with elements of some other antlib it tries to use. As the renaming is local to the project there is no problem; it is up to the user of the antlib to decide what names to use to refer to the loaded things. For example I may use the <foreach> class of antcontrib but for reasons of my project being in need to also use a <foreach> defined by some other third party which works diferently. So I could just load it and rename it lets say to <forall> and use it in my project using that name. It is up to me as the user of the antlib.