Tags offer a superset of the functionality that a hierarchical structure can offer, because a file's path (including its name) can be seen as simply another tag. "list the contents of directory /foo/bar" then becomes "list all files whose path tag begins with /foo/bar/". So in fact, you're already entering and managing tags.
otoh, in a hierarchical structure it's often not clear where a file belongs. Where do I put the images that belong to my bachelor's thesis, in ~/thesis or in ~/images? This kind of thing crops up all the time.