Я думаю, что всегда будет GIL.
Причина в производительности. Сделать весь поток доступа низкого уровня безопасным - означает, что мьютекс вокруг каждой операции хеширования и т. Д. Тяжел. Помните, что простое утверждение типа
self.foo(self.bar, 3, val)
Может уже иметь как минимум 3 (если val является глобальным) поиска в хеш-таблице на данный момент и, возможно, даже больше, если кэш метода не горячий (зависит от глубины наследования класса)
Это дорого - поэтому Java отказалась от этой идеи и представила хеш-таблицы, в которых не используется вызов монитора, чтобы избавиться от своей торговой марки "Java Is Slow".