I'll say python isn't any more dynamic than ruby and groovy, and they have fairly stable and usable static compile target release/ports [1]. Python has a few [2] attempts, but none of them is close to stable or really useful.
Didn't forget it, just didn't include it since to me, it's more like a totally different (and not pretty) language that tries to look like python. I should however include Nuitka [1] since it is fairly usable, it's just the generated version isn't much faster than its interpreted python version.
Why is Cython a totally different language? It's definitely a superset, what with all the custom syntax for type annotations, struct definitions etc. But you can ignore all that, and just stick to the pure Python subset.
Guess you can say Crystal is a totally different language as well. It's just to me, Crystal still has the same feel as ruby and Cython doesn't. Again, it's just my opinion, I won't argue if you feel otherwise.
You're arguing that dynamic functionality doesn't stop you being able to statically compile Ruby, giving Crystal as an example - a language which had to drop most of the dynamic functionality of Ruby to achieve better performance.
> groovy, and they have fairly stable and usable static compile target release
Citing some Groovy 2.x Release Notes to prove a claim of "stability" for Groovy is like quoting an advertisement for Parmolux washing powder to prove its "effectiveness" at washing out dirt.
Not many developers bother with Groovy's static compilation annotations. It's used mainly as a scripting language for testing Java classes, gluing together Java programs, as a build DSL in Gradle, and scripting in Grails. When static annotations are used, their use is typically small-scale.
[1] https://crystal-lang.org/
http://groovy-lang.org/releasenotes/groovy-2.0.html
[2] https://github.com/shedskin/shedskin
https://github.com/codeblazer-io/blazescript
https://github.com/serge-sans-paille/pythran