I suspect the failure due to variable-sized temporaries that you saw
has to do with a think-o in the loop that initialized the elements --
it should have recursed for nested constructors rather than creating a
new <MODIFY_EXPR <obj> <CONSTRUCTOR>> statement.
No such luck. Try compiling the RTS file a-direct.adb.
I'm investigating too ...