You seem to have a general problem with the object oriented approach. As JavaScript is a general purpose + general audience language it tries to have minimal support for common paradigms (both fp and oo). That's fine IMO. Private props are fine. They are easy enough to learn and do not really get in your way in JS.
Not really - I've done OOP before it was cool (yeah, I'm old). But to use "#" for private properties - it's beyond fugly and not semantical [0].
[0] https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...