Just to make it clear, External Id and Unique are two completely independent configurations in a field.
External Id performs two important actions on the underlying metadata of a field. First is creates an ExtId-to-Id map that is can be used for cross-object mapping during upsert operations and data imports. Second, it indexes the field. It does not force a uniqueness rule on the field.
Setting a field to Unique also performs two actions on the behavior of a field. First is that it enforces a field to be unique. Second is that it adds an index to a field.
If field is both External Id and Unique, there is only one index added to the field with regard to the limit on number of indexed fields allowed per object.
My best guess as to why External Id is not necessarily unique is that this is the way you can make a field indexed, without also making it unique without contacting support and asking for an index to be added.
I would take it a step further than other answers to state that uniqueness is actually a per-field basis. I could have two unique fields on the same object. If each of those fields had a value 'MyValue12345', there would be no violation of the unique rule for either field.