However, if I'm going to do low-level server work, I will not be doing it for 32-bit anymore. (There goes the 32-bit EC2 "small" machine, but so be it.)
Why would anyone do this? If you've accepted that you're going to pay the cost to link against libc, use C. If you need to do something that specifically requires assembly, write that function (and that function only) in assembly. GCC will handle all of this very cleanly for you. You don't have to write main() in assembly.
As well intentioned as I imagine the author to be, there's really nothing here that you couldn't learn from older documentation, as several commentors have pointed out. A more interesting example would have been to calculate running time of some function vs. it's recursive version. Essentially, something besides an extended 'hello world'.
Not really; while main is default, -e flag allows you to specify an arbitrary symbol as entry point.