Unless something changed since I last contributed (which is a long time ago) the public player can just change to any company he like. He does no have to unlock the company, it should be already marked as unlocked for him.
I do not see any logic for this, outside of single player (not network). Come to think of it that logic seems kind of pointless...
I will look into adding this feature.
Added it to r7923. If you are authenticated as public service player it should now be possible to bypass all password checks. It is done automatically when changing from public service player to another company. It can also be done manually by submitting any password to a company. The password integrity of the company should be unchanged during the bypass, however once the bypass is performed if a new password is entered then the password will be changed.
River it would be nice if you could update the nightly server to r7923 once it propagates to the build servers and test if the feature works or has any bugs/exploits. I have not tested this new feature.