C works pretty well. Linux is somewhere upwards of 20M LOC, and it's famously a monolith!
Ya I'd say the key is lexical scoping and strong typing. C has those. Python and Ruby have neither.
Perhaps you mean statically typed? i.e. type checked at compile time.
C is generally not considered to be strongly typed but Ruby is. i.e. types aren't automatically coerced at runtime in Ruby.
And method_missing is a such fundamental part of the language, that it obvious you skipped basic docs on the language. Besides that, there're not many "magic references". Unlike in python, btw, where "there should be 1 obvious solution to any problem" mantra doesn't hold for a veeery long time.