There's a flip side to providing caveats and walking on egg shells: The culture is terrible at providing feedback. It's given when not requested, it's usually very very pedantic, or possibly delivered with some degree of irritation.
One thing that I find helps: separate things into objective and subjective categories.
code quality, best language, good design, cleanliness -- examples of subjective measures. They're going to vary by person, background and experience, thought processes, etc. They make for entertaining discussion topics, but not usually productive ones.
These generally are also the areas where people's egos and self worth get wrapped up. No one wants to feel like they're producing unclean code.
I try to focus more on objective things: does it produce the correct result? how much time will it take to on board someone to x y or z? It usually helps keep the discussion productive and helps keep egos at bay.
It's difficult though. People have opinions, and they want you to know about them. and they want those opinions to be facts. And it's most likely something we're all guilty of.