But I can still get access to helperMethod by mixing in the module.
Private methods are not a form of code security. Even if you made this method completely private, you can still get to it with .send(:helperMethod).
No language makes any private method absolutely private. You should think of privacy as nothing more than a warning - "please reconsider calling this method". Another common way to do that is move the method out of the default namespace by calling it _helperMethod.