As for types not being checked, that's not a problem. JITs do extra specialization on assumed types even without annotations all the time, and just drop them at runtime when they are not valid anymore (e.g. a variable that only pointed to integers now stores a string). Still, this runtime overhead of dropping specialized code aside, those optimizations make e.g. v8 hella fast.
(And of course you could also just enable optimizations after you've statically checked the whole program types with something like mypy -- this is even easier and less dynamic than what v8 does).
>and you give up a big optimization opportunity
You don't give anything up, since an implementation can take advantage of this "big optimization opportunity" if it wants and has the manpower to add it.
>But Guido's naive interpreter will still work.
It's also less work, which unless we have a volunteer here, was and remains the intention.