The build system is a bit convoluted with regards to cross-building. x86_64 can't build i386 binaries with the standard make lines for the same reason that i386 can't build x86_64 with the standard make line.
All the information needed is in the configuration files but the make system doesn't deal with it properly because it really has to re-exec itself with the proper make line (for each target). An example of working cross-build parameters can be found in e.g. /usr/src/test/x86_64/Makefile (for i386 cross building x86_64). I've never tried x86_64 cross-building to i386 though. -Matt