With the rising popularity of the LLVM toolchain nowadays, I believe it would be beneficial to align data in a way that behaves nicely with with the LLVM linker. Most notably, LLVM will fail when e_shoff is not a multiple of two.
# fasm test.s test.o
flat assembler version 1.71.60 (16384 kilobytes memory)
3 passes, 909 bytes.
# readelf -a test.o | grep -i 'start of section headers'
Start of section headers: 525 (bytes into file)
# nm test.o
bfd plugin: LLVM gold plugin has failed to create LTO module: Invalid data was encountered while parsing the file
nm: test.o: no symbols
# ld.lld -o test test.o
ld.lld: error: invalid alignment of section headers
# vim test.s
# fasm test.s test.o
flat assembler version 1.71.60 (16384 kilobytes memory)
3 passes, 910 bytes
# readelf -a test.o | grep -i 'start of section headers'
Start of section headers: 526 (bytes into file)
# nm test.o
0000000000000000 T _start
# ld.lld -o test test.o
# exit