If the semantics in C is that everything is typed shared then it should also be treated as such when D interfaces with C and C like type-semantics.
Then you would need to laboriously mark everything related to C as shared, which would be quite different from C workflow.
