That's pretty funny. I like that. Yeah, I'd say it definitely depends on your project and your team.
There are also ways to opt-in and out of following rules like this, even from a TypeScript context- you just have to be more aggressive about it.
For example, you could access private methods by doing:
User['create']() for example. Sometimes this is necessary for testing.