Several good answers here. Always take style guides with a grain of salt, and IMHO and experience, be ever-so-slightly-to-moderately concerned about any community that is rife with excessive dogma when it comes to style. It's almost like they believe that when they FINALLY get that last I dotted, and that last T crossed, then the software will work. Sometimes it takes more than perfect style to remove bugs...
When I started learning shell, most scripts and tutes out there used the in-line semicolon format
for i in "$@"; do
but because I was inexperienced, I had a bit of a hard time spotting the ; and do - both essential for confirming syntactical correctness. So I preferred the do on the next line all by itself. I no longer do that (pun intended)
Further, the 'while' command is an excellent candidate for a nice little trick:
while prep1; prep2; condition; do
but when the prep commands are a bit bulky, and/or the condition is complex, it is better formatted as
and then appending the do as "; do" is positively fugly.
You can even get more intense than that:
if con1; then
elif cond3; then
elif cond5; then
because every statement is an expression. Notice how both styles are used opportunistically. Keep it clean and it's quite readable. Compact or contort it in the name of style or "saving space" and it becomes a horrible mess.
So! Given the rather baroque stylings of shell scripts in general, anything aimed at increasing clarity and easy visual access to significant symbols is always a good thing.
The form where 'do' is written inline with the command is sweet when you have a little command - I don't find the 'do' visually hidden, nor is the inner command really obscured:
for i in whatever
I find that quite pleasant to look at, and it has analogues with while, if and case:
case $blah in
Clarity and general tidiness is all that Codd* asks of you.
*Edgar F. Codd, father of relational database theory.