On a x86_64-linux-gnu machine calling gcc -m32 -dumpmachine gives x86_64-linux-gnu while I would have expected something like i686-linux-gnu Docu says "print the compilers target machine" in the presence of "-m32" I'm not sure that the right answer would be. The most usefull answer for me would be i686-linux-gnu, as I am using gcc -dumpmachine in my makefiles and users passing in CFLAGS="-m32" break the build.
No, dumpmachine should dump the target which gcc was built. It should not be made multilib aware. If you want to make sure you are compiling for 32bit, then check the preprocessed predefines instead.
Also the dumpmachine does not work for things like x32 where just the ABI changes.