RuntimeInputModule#getRaw() returns a RuntimeSerializationRoot instance, even though RuntimeInputModule#getObject() could return a String, in which case the most appropriate tree representation would be a RuntimeSerializedString node.
Currently, String instances passed to Linker#marshalToTree are therefore marshaled into a RuntimeSerializationRoot instance. More specifically, TreeBuilderImpl#shouldMarshal contains level == 0 as one of the conditions under which true is returned.
The best fix may be to fit the interfaces into the MarshalingTreeNode hierarchy.