Používám jak elementy, tak atributy. Atributy jsou stručnější a přehlednější, ale můžeš u nich v budoucnu narazit. Základní pravidlo je: bude tu vždy ta hodnota jen jednou a bude atomická? Pokud je odpověď jednoznačné ano, tak není problém z toho udělat atribut. Pokud nevím nebo plánuji rozšíření (podpora více prvků nebo nějaké vnitřní členění, doplnění atributu k atributu), tak spíš element.
Ono není až taková tragédie udělat verzi formátu 2.0 a v ní přejít z atributů na elementy, ale to bych si nechával spíš na větší změny a při běžném vývoji se snažil jít spíš evoluční cestou (např. přibude nepovinný atribut).
Nacpat všechno do atributů může mít v některých případech racionální vysvětlení nebo nějakou myšlenku. Někteří lidé totiž kritizují XML za to, že je moc složité a umožňuje dva způsoby zápisu zanořených hodnot – a z tohoto důvodu ignorují atributy jakožto zbytečné (z teoretického pohledu skutečně zbytečné jsou) a snaží se používat jen podmnožinu z XML a dávat vše do elementů. Z teoretického a modelového pohledu to jednodušší je, z pohledu zápisu je to zase složitější. Osobně bych upřednostnil spíš ten praktičtější kompromis (elementy i atributy, které se lépe píší a čtou) než nějakou absolutní teoretickou čistotu formátu.
Většinou ale za tím žádná hluboká myšlenka nebude a je to spíš důsledek lenosti nebo ignorance. Ono špatně navržených nedomyšlených formátů postavených nad XML jsou spousty (což je i většina důvodů ke kritice XML – tzn. kritiku nezaslouží až tak XML jako takové, ale spíš některé formáty na něm postavené).
P.S. Určitě je lepší mít někde element, i když by stačil atribut, než mastit víc hodnot do jednoho atributu oddělených třeba čárkou nebo mezerou. Nebo taková zvěrstva jako atribut-1="" atribut-2="" atribut-2="" nebo dokonce „emulaci“ jmenných prostorů pomocí nějakých prefixů. Za taková zvěrstva by měl následovat krutý trest.