Прочитав некоторые из них (я не эксперт), могу поспорить, что это всего лишь требование синтаксиса функции для лучшей читабельности.
Я пойду на шаг вперед и скажу в большом, старом,плохо написанные процедуры / функции на других языках, иногда это делается без языка, требующего этого.Я часто видел:
int veryLongC++Function() {
...
...
... 3000 code lines
} //veryLongC++Function
Так что читатель, прыгающий ближе к концу, знает, что в беспорядке он смотрит.Август упоминает в комментарии, что это гораздо менее надежно, если не применяется компилятором - в случае изменения имени.
Другим важным аспектом являются вложенные процедуры - здесь явное окончание делает вещи намного более читабельными - см. Пример глава 7 - вложенная процедура объявляется между объявлением и до BEGIN
,Синтаксис делает это выглядит намного лучше (на мой взгляд).
Короче говоря, я думаю, что главное преимущество - читабельность.