Recompiling the system for a different architecture leads to a nasty situation where it fails to boot as busybox is not included in the recompile. Running genkernel will not recompile busybox unless the binary has been manually deleted. Recompiling busybox when genkernel is run with changed cflags would prevent users the surprise of an unbootable system when they change architectures.
In this case, the user should be clearing the genkernel cache. Changing arch/cflags incompatibly is not the only thing that would cause the cached copy to be unusable, and short of adding lots of tracking info to the cached files, I'm not sure there is any easy ways of catching this.
I am closing this as obsolete because with genkernel-4.0.0-beta.1 and later, cross-compile support was reworked and bug is mentioning especially that. I.e. when you start creating kernel for x86_64 and will now start to build kernel for arm64, you will get new packages. Of course we still use general CFLAGS (like portage) which you can set via --utils-cflags. There's no need to mess with that setting (they shouldn't contain --march). But if you do, you must rebuild on your like you have to do for packages in Gentoo.