The GIL is an implementation detail; not a bug.
(and yes, it's visible, and that's one reason why I have issues with it -- it's a classic leaky abstraction, except in this case the "leak" is more like a torrential flood)
And special case constructs for linear recursion like `for' and `while' are only a necessary band-aid in languages that do not treat functions properly.
The assumption that the way you prefer to write code should be the only way to write code is, well, exactly what I was talking about.
Ergo, it is an implementation detail.