@larma yes, Matrix stores unobfuscated room membership serverside (P2P fixes that). no, your device contacts (i.e. phone book) are never stored on the homeserver. no, it doesn't create "one room for every contact"; instead it maintains membership state for the contacts you're in.
You're right that cross-signing attestations currently leak metadata about who's signed who to the server; this can and should be fixed; have filed https://github.com/matrix-org/matrix-doc/issues/2894