В интернете есть множество обсуждений этого механизма, где меряются секундами, показываются картинки с тредами и обсуждаются пути обхода. Но, собственно, зачем он добавлен в язык? В большинстве других языков программирования таких причуд с потоками не существует. Расставил локи на критические секции и пожинай плоды мультипоточности. Так а почему в питоне нельзя сделать также?
Потому что по умолчанию предполагается, что программист не умеет правильно работать с потоками, что в 95% верно. К тому же не все так просто с многопоточностью в реальном мире и сборщик мусора в питоне завязан как раз на этот самый gil