Probably because it's statically linked with some standard libraries. If you write a hello world app in C++ and compile/link with all the defaults, you'll see similar results.
You should use OpenBSD, then it's only 10k. As for why, objdump -s gives some hints. Lots of the file is really just zeros (you can see this with hexdump too), and the various sections of the file are padded for alignment.