LRM-2002 8.4.1
"If a given procedure is declared by a declarative item that is not contained within a process statement, and if a signal assignment statement appears in that procedure, then the target of the assignment statement must be a formal parameter of the given procedure or of a parent of that procedure, or an aggregate of such formal parameters."
Исключений для impure функций нет. Такое требование в стандарте не зря: присваивание сигнала подразумевает использование драйвера сигнала из вызывающего процесса, этот драйвер сигнала не описывается самим описаниемм сигнала, а принадлежит конкретному процессу и передается во внешнюю по отношению к процессу процедеру только через сигнал - формальный параметр. Однако если описать процедуру в декларативной части процесса - то эта процедура сможет присваивать значения любых сигналов, пользуясь для этого драйвером самого процесса.