Нет, в принципе конечно идея сделать жесткой конструкцию IF ELIF ELSE (то есть ELSE обязателен) равно как и CASE .. ELSE, довольно интересна. В этом случае будут рассматриваться гарантированно все случаи, все ветки всегда. И вообще лежит в том же русле что и RETURN не как statement, а как часть синтаксиса функции.
Но Вирт по какой-то причине этого не сделал.
Мне иногда кажется что мы вавилонскую башню строим. Т.к. разговариваем бывает на разных языках.
Вот эта цитата примечательна тем, что предлагается вариант который имеет полностью противоположный эффект, нежели дает CASE с HALT.
HALT - дает гарантию что выполнение остановится если CASE'у сообщение неизвестно. Т.е. весь профит заключен именно в останове.
Предложенный же тобой вариант, в корне этот профит уничтожает.
И этот вариант как раз никогда не гарантирует что:
будут рассматриваться гарантированно все случаи, все ветки всегда.
Пример:
if msg = m1 then
do1();
elif msg = m2 then
do2();
else
do3();
end;
Даем конструкции новую мессагу
m4 и приехали... Кот работает как ни в чем не бывало. И только по побочным эффектам от багов можно будет догадаться, что забыл добавить обработку этой новой мессаги.