
That's true... though it does require a serialization of a sort if sending collections: you have to traverse the collection and convert all child elements to read-only also. Though I guess if you're restricting users to sending "ReadOnlyDict" across the wire, you could use similar ReadOnlyDicts nested.
That's probably a good solution.