Why are waypoints not named uniquely?
ICAO does actually recommend that names for significant points are unique:

3.4 The   unique   five-letter   pronounceable   name-code designator assigned to a significant point shall not be assigned to any other significant point.

However, as you already know, not all names are in fact unique. So why is that?

This is unnecessary (it would be possible to use unique names only).

No, it probably wouldn't. There are millions of named significant points around the world. Assuming points could be named completely randomly (any combination of 5 letters), just about 12 million unique names would be available (26 to the power of 5). However, points are not just named randomly, they have to follow some rules:

3.2 The  name-code  designator  shall  be  selected  so  as  to avoid   any   difficulties   in   pronunciation   by   pilots   or   ATS personnel   when   speaking   in   the   language   used   in   ATS communications.
3.3 The   name-code   designator   shall   be   easily   recognizable   in   voice   communications   and   shall   be   free   of ambiguity  with  those  used  for  other  significant  points  in  the same general area.

You can't just put together 5 letters in a unique way, you have to create a pronounceable, recognizable word, and it can't sound similar to other points in the same area. This significantly limits the number of options.

It introduces potential for confusion.

In theory, yes. In practice, this is not a problem. The risk of pilots navigating to a point with a duplicate name is next to none. Points with duplicate names are never located in close proximity, and most flight management systems will automatically select the nearest point, when inputting a route where duplicates exist. I'm not saying a mishap related to this issue has never happened in the history of aviation, but personally I have never heard of one, and I doubt I ever will.
All references from ICAO Annex 11, Appendix 2