@yglukhov: I completely understand your point. But I am not saying that without language-backed guarantees you can write clean code, I am saying that carefully chosen language-backed guarantees favours clean code.
To give an extreme example: most C projects are filled with misleading and inconsistent indents (and incidentally, even more so when the said projects are written by scientists). Sure, projects with good engineering practices generally don't have that problem. What about Nim? Well, **absolutely no Nim code** out there contains misleading or inconsistent indents. Does that make Nim much more painful than C to write? "Guarantees" do not need to be perfect: they would still be useful.
