Hi uaz,
one important point of Franca interface definitions is that the data can be transported across address space boundaries, e.g., from the interface client on one processor to the service provider on another processor. Something like a pointer from one object to another cannot be transported across such boundaries easily, as the memory address the pointer is pointing to will not exist in the other address space. Therefore, this cannot be modeled with Franca IDL.
If you know that both sides of the interface will always be in the same address space, you could introduce a special type alias (e.g., named "Pointer") which maps to a string, or to some other struct-like data type. Then the implementation of this is up to the code generator. But you will loose the nice abstraction level by doing this (and CommonAPI will not know how to deal with it).
Hope this helps, regards,
Klaus