Я так понял Олег предлагает решить эту проблему аннотациями, чтобы сам программист помогал компилятору разбираться в чистоте на свой страх и риск, но более правильный подход, чтобы перейти на новые фреймверки , которые решат эти проблемы как- то централизованно наверное.
я говорю, что какой бы софистикейтед у компилятора ни был алгоритм определения "чистоты" функции, в компилятор либо нужно встраивать прувер, либо давать некоторые функции насильно помечать как чистые