1. Именно такая реализация подпрограмм определяет то, что локальные переменные недоступны из более высоких уровней, так как они создаются только на время обращения к подпрограмме и уничтожаются при ее завершении (стирается страница стека).
2. Величина параметра-значения хранится в странице стека только в процессе выполнения подпрограммы и стирается при ее завершении, а значение параметра-переменной хранится на более высоком уровне и меняется подпрограммой во время ее выполнения. Когда страница стека стирается, то уничтожается лишь адрес этой переменной, а значение сохраняется.
3. Все идентификаторы в подпрограмме (основной программе) должны быть уникальными. Если программист использует идентификаторы, которые совпадают с именами встроенных функций или процедур, то последние становятся недоступными в пределах области действия подпрограммы. Аналогично для переменных. Если программист вводит локальную переменную с именем уже описанной ранее глобальной переменной, то в данной подпрограмме эта глобальная переменная становится недоступной.
4. Динамическая организация выполнения подпрограмм делает возможным вызов подпрограммой самой себя с новыми значениями фактических параметров. Это называется рекурсией.
5. Вложенность описания подпрограмм не должна превышать 10. Это не относится к рекурсиям, то есть вложенности при выполнении, которая ограничивается только физическими размерами поля ОЗУ, отводимого под стек.
6. Использование подпрограмм приводит к существенным затратам времени, так как осуществляется формирование стека и связывание формальных и фактических параметров. Поэтому, если вызовов подпрограмм слишком много, то временные характеристики могут быть существенно хуже той же программы, но без подпрограмм.