http://tracker.phpbb.com/browse/PHPBB3-11013So - this all looks deceptively simple ... I'm sure I've missed something here

Anyway I've modified the filter and associated elements to do as per Nils and others suggestion. You can assign an entire array to a template variable and retrieve it via the following syntax:
{<TEMPLATE VAR>:<element name>}
I used : instead of . because I felt the . syntax suggested a "block", it's much of a muchness and the regexp's easily modified for whatever. This works for block level elements:
{<block>.<TEMPLATE VAR>:<element name>}
and conditionals:
<!-- IF <TEMPLATE VAR>:<element name> <condition> -->
Back to the original OP's request - assigning of various user->data values to the template. While we could just dump $user->data to the template as a whole things like avatars, ranks and the like will need to be specifically set won't they? e.g. a call to get_user_avatar() and the like. So should these things be assigned individuality to the template, e.g. {USER_AVATAR}, {USER_RANK}, or assigned to this new array solution, e.g. {USER_DATA:avatar}, {USER_DATA:rank} or some such? Or something else entirely of course ...