Так ведь чистые функции могут обращаться к другим чистым функциям, поэтому только локальным контекстом обойтись нельзя и придётся, всё же править компилятор и сканер и семантический анализатор. И ещё, как быть с формальными параметрами? Их можно изменять, если они по значению передаются?