В прошлом я справлялся с этим, перемещая все связанные с состоянием вещи в отдельные пакеты.
Например, если бы у меня был пакет "CUSTOMER_PKG", я бы переместил все глобальные переменные в пакет только для спецификации с именем "CUSTOMER_GLOBALS_PKG".
К сожалению, это означает раскрытие всех частных глобальных переменных, которые были определены в теле пакета. Нам пришлось применять стандарт разработки, чтобы CUSTOMER_GLOBALS_PKG разрешалось ссылаться только на CUSTOMER_PKG.