There is no automated decision procedure as to what should be an
attribute and what an element. There are some things you can
do with attributes but not with elements, and vice versa. But there
are lots of places where either works. In these places, it is indeed,
as you hypothesize, a design preference. Human document designers
empirically seem to like having both elements & attributes available
and find this increases their expressive power.
There is a clear lesson; any software that needs to be able to fish
data out of an XML document had better have the capability of
extracting it either from an element or an attribute. -T.