Attributes are syntactic illusions. They appear to be part of an element simply because they are inside the brackets. Child elements are not and thus seem to represent containment. This doesn't mean attributes are not useful however since there are useful illusions, but they are useful to people and not necessarily to machines.
Attributes are convenient in the same sense that C is more convenient than assembly language.
Like the 'for' loop, it is a shorthand for a common usage pattern. Attributes are double-edged swords. After rather long discussions on the advantages and disadvantages of attributes, I don't think there is a need for me to explain this. While removing attributes opens up a new world of possiblities, it also means SML users might have to rebuild much of the stack of standards W3C and other organizations have built because most of them uses attributes. It is true that the rebuilding will proceed faster because we will have existing work to start with.