Я другого варианта даже не вижу. Не очень понятно зачем было так сделано изначально - менять данные полученные из базы, не для того что бы их обратно в базу сохранить.
Вот мне в алхимии и других орм не хватает иногда возможности сделать смарт объект "глупым". То есть открепить его от базы. Чтобы его можно было между тредами кидать, в кеш класть, использовать его снимок в разных транзакциях и т.д.