It's frustrating. Even with tagging it breaks down, because tagging systems tend to be naive in that they assume either a limited number of keys or a limited number of values for each key (often only one).
The related problem is syncing metadata from tagging systems with files when the move between systems. Embedding tag data in files works well but is format specific and usually quite limited (example: you're reading ID3v2 data from an MP3. Quick, what is the encoding of the textual data?)
The lowest common denominator is directories and file names, because every system has those and no agreement on key names is required.
There's probably a need for a portable file API for tagging. Something that raises the lowest denominator a bit but doesn't mandate an on disk format, indexes, complex protocols, etc..