I can't speak to the rest of your question... but for the "what do you do in public when they aren't tall enough" part, here's what I did.
I picked him up. Yeah.. it was back breaking (I had one solid kid, no lightweight). But I would stand behind him, have him undo his shorts and pull them down, and lift him from under the arms (around the upper rib cage/chest but under the arm pits). Like if you were to lift him to put him up on your shoulders or something (ok, I never did that, but my husband would put him on his shoulders that way).
That left his hands free to "aim" and his parts weren't touching anything.
It was tough, too, because I was pregnant. :/ But, it worked.
I also got really good at timing trips so that he didn't have to go while we were out, unless dad was with us. Then dad could take him into the mens room and he could use a urinal.