Если вы посмотрите на http://sites.google.com/site/burakemir/scalaxbook.docbk.html?attredirects=0,, вы обнаружите, что Atom действительно был предназначен "для узлов, содержащих данные любого типа, например, int, Date".
Как вы заметили, встроенные выражения внутри элементов превращаются в атомы, если они не являются строками, например
<foo>{42}</foo>
имеет в детстве атом [Int].
Чтобы добавить атом в значение атрибута, вы должны написать
<foo life={new Atom(42)}>
(В «книге» это был просто Atom (42), но это было тогда - Atom больше не является классом прецедентов, поскольку наследование класса прецедентов устарело.)
Итак, да, то, что вы хотите сделать, полностью соответствует духу замысла.
Но дизайну уже несколько лет, и многие люди недовольны некоторыми решениями. Поддержка XML в Scala может быть очищена в будущем, и эта довольно неясная функция может не сохраниться.