It's about preference, I prefer to use {} as well. The coding guidelines for code for the core require it.
Only reason for me to use foreach:...endforeach; is in templates where {} don't make sence as there's a lot non-PHP in between.
I always use { } in anything other than a view, and in views I generally have a preference for if foo(...): if I then I close php ?> and use <?=$foo?> instead of writing it with echo. Just looks neater and is easier to read!