Python pickle (я говорю о стандартном Python 2.5/2.6/2.7 здесь) не может рассортировать блокировки, файловые объекты и т.д.
Он также не может рассортировать генераторы и лямбда-выражения (или любой другой анонимный код), потому что рассол действительно хранит только ссылки на имена.
В случае блокировок и функций, зависящих от ОС, причина, по которой вы не можете их рассортировать, очевидна и имеет смысл.
Но почему вы не можете распиливать генераторы?
Примечание: просто для ясности - меня интересует фундаментальная причина (или предположения и выбор, которые вошли в это дизайнерское решение), почему, а не в "потому что это дает вам ошибку Pickle".
Я понимаю вопрос немного широким, так что вот эмпирическое правило о том, ответил ли вы на него: "Если бы эти предположения были подняты или тип разрешенного генератора был каким-то образом ограниченным, могли бы снова генерировать генераторы?"