To achieve global uniqueness, short strings won't do. Very long strings are out of the question as element names.
So you have the choice of not-too-long identifiers which do not uniquely identify a vocabulary, or long identifiers (URIs) for which a mapping to a short placeholder is required. Namespace attributes keep this mapping cleanly apart from anything else. Would you seriously prefer to shift the mapping into the element names?