Können schon.
Rückgabewerte kommt vom alten C, denn da hatte ein Funktion immer den Rückgabewert int sofern nichts definiert war und nicht void.
---
Aber du kannst in Delphi/Pascal ein Ergebnis ja auswerten.
Allein war im Pascal früher die Verwendung der Rückgabe verpflichtend. Das führte dazu, dass wie kurz zuvor erwähnt viele Statusvariablen rumschwirrten die entweder das Ergebnis des letzten Funktionsaufrufs hielten oder es gab viele davon. Das machte die Programme unübersichtlich und fehleranfällig.
Alternative hast du zuviele IFs die sich mit Fehlerbehandlung beschäftigen oder die typischen MagicHandleError(Funktion(A,B)); als Ersatz für eine
Exception (kinda GOTO :ERROR).
--
Damals waren Prozeduren lange und Nested Procedures waren an der Tagesordnung.
Im Delphi kannst du in einem Testprojekt mal Erweiterte Syntax auf 'false' setzen in den Optionen und in der Praxis. Du wirst schnell sehen, dass die damit verbundenen Restriktionen mehr Ungemach als Gemach provozieren. Zu Zeiten von Records und Abstrakten Datenstrukturen resp. -typen war diese Modus noch durchwegs akzeptabel. Mit OO begannen die Nachteile zu überwiegen (merklich seit BP 7).
Also wenn man eine Funktion nicht auswertet, sprich: wie eine Prozedur bedient, da frag ich mich ob ein Result nicht doch wichtig sein könnte