Not only is it an unnecessary hassle, 1 GB of memory
on 32 machine ends up requiring at least 3 GB of memory
on a 64 bit machine.
Code density for x86 and the extra CPU registers mean 64bit is usually
faster and the code density is pretty much the same (unlike say Sparc64
where 64bit userspace apps are generally not useful). Data pointers
expand a little but not much, and your 1 to 3GB is a totally bogus claim.
The moment you have more than about 900MB of RAM there are big advantages
to running a 64bit kernel as it can keep all of physical and virtual
space mapped at the same time, which is a big performance win.
Alan