On x86_64 platform, rhnlib installs all the files into the /usr/lib/python2.3/site-packages/rhn/ directory. It should probably be using /usr/lib64/python2.3/site-packages/rhn/ (note the "64").
Sort of. rhnlib is a noarch package, because it is python code that is portable on all arches. It would be a pain to recompile all noarch packages on 64-bit arches just to drop them in /usr/lib64 instead of /usr/lib. We chose to keep looking for packages in /usr/lib even on 64-bit platforms, so that we can reuse the noarch packages. Needless to say, python does not play very nicely with multilib. Should FHS have chosen /usr64 as a place to drop 64-bit packages, we could have just changed sys.exec_prefix. Unfortunately, python slaps lib at the end of both sys.prefix and sys.exec_prefix, so it needs patching in order to make it obey FHS. Please feel free to reopen the bug if you think this is incorrect or rhnlib does not work on 64-bit arches (although I know it does).