Actually, it is still true. hexdump has some confusing format options... what you were using was converting it to little-endian first before printing the hex representation, which really messed with gzip. Try this:
$ hexdump -e '"%x"' < american-english | gzip | wc -c
463871
$ hexdump -v -e '/1 "%02x"' < american-english | gzip | wc -c
302515
$ base64 < american-english | gzip | wc -c
415737