я для себя в итоге вижу как вариант:
функция есть операция, связанная с интерактивным взаимодействием с пользователем или другой программой - т.е. она что-то принимает и что-то выдает, она самодостаточно
процедура - некое обособленное действие в программе, которые могут запускаться в рамках функций или функциями (например, функция управления чем-то в GUI запускает процедуру изменений в БД и т.п.) - пример - рассылка - функция рассылки запускает процедуры составления списка адресатов, обращения к почтовому серверу, на котором, в совю очередь, идет функция рассылки...
Отсюда получается, что с интерфейсами связаны именно функции, а процедуры ими запускаются