if someone is really bent on not having to use "begin" "end" then code everything as functions. That allows begin/end free coding such as:
f1 and f2 and f3 and f4 and... ... fn;
or essentially the same:
if not(f1 and f2 and f3 and f4 and... ... fn) then ReportThereWasAnError();
Personally, I very often do the opposite in my code, i.e, even if the statement can be coded without begin/end, I still code it with begin/end because it helps in testing and debugging (particularly in stopping execution), e.g:
if <somecondition> then
begin
<a statement>
end;
That allows setting a breakpoint which is triggered only if <a statement> is reached. if that statement was on the same line as the "if" itself then the value of the condition would not yet be known.
It also allows for easier testing of the execution path where <somecondition> is true. To test that code simply add a ";" after the then, the code becomes:
if <somecondition> then ;
begin
<a statement>
end;
which means <a statement> will be executed which allows the programmer to ensure it works as intented. Note that the presence of the ";" can be dependent on defining a conditional directive, which is a convenient way of ensuring all code paths are tested (as they should be.) Long live "begin" "end" (very useful)

The use of begin/end and conditional directives allows for code where the testing of every possible execution path is easy to perform.