1. If different vms have the same name it would be difficult for them to identify the one they need right? =)
You normally group them, so there is no confusion. I have groups for different departments and often their respective administrators only see "their" stuff. In PVE, the ID is unique, so a name is only for humans.
I use pools for grouping (and then permissions for the entire group) and I also use ranges of numbers for different machines, so that I know that machines in the 1xxx range are crucial, 2xxx are still infrastructure but can fail, etc. From the "outside" I have logic to monitor them more often and do more backups, etc.
3. In VmWare there is a problem with mac address collision when you are cloning. Probably, Proxmox has the same problem.
Yes, the problem itself is the same for every cloning mechanism of every product, yet how they handle it differs.
4. We also have a lot of virtual machines in our infrastructure, but all of them have different names =)
Because you're used to VMware logic :-D
PVE uses IDs, so I think in them. Every API call you do with the REST api uses this identifier, not the name.
I really don't care about the names, often they are not every "descriptive", so I add more information about the machines in the machine description like IP, DNS, OS, purpose, etc. I hope there will be some way to query this information from the guest in the future.