I see your points, although I don't quite agree. Programmers will
continue to do stupid things, even if it hurts. And in these cases,
having an "intentionally hard to use" version-statement might increase
the overall mess even further.
But what do you say about the possibility of uncatched typos? (the
"version(linxu) {" example)