It looks like this might still be an issue.
I'm currently running 0.3 spacewalk and while registering new clients, they were showing up as "unknown".
The hostname was resolving just fine locally, but apparently not when I registered with my spacewalk server.
Just to clarify, I'm not running NIS, WINS, LDAP, or DNS for hostname resolution. Just the local /etc/hosts file on the client and server in a test environment. When I did some initial testing I was able to register the host just fine and it's FQDN would show up in spacewalk under Systems. But then when I started to kickstart some clients, after registration they would display as "unknown". Only thing different was that the kickstart clients were using DHCP. So I made a couple of quick config changes to a static IP and a FQDN, restarted networking, then deleted the old profile and re-registered the client. Hostname still showed up as "unknown" to the spacewalk server.
So I did some searching and I found this thread in the archive which sounded like the exact same problem.
After reading through this thread. I noticed that the /etc/hosts file was mentioned. So I added the static IP and FQDN to /etc/hosts (on the client) and re-registered again. This time it worked! So it appears that the rhnreg_ks or something that it calls, is looking for a FQDN in /etc/hosts. If it isn't found then it registers as "unknown", even though the FQDN is resolving locally . Not sure about environments running other name resolution schemes, but for local files, this seems to be the case.
During all my testing, /etc/nsswitch.conf had the following entry:
hosts: files dns
Here's a diff of the systemid file after registration with and without a FQDN entry in /etc/hosts:
[root devapp03 rhn]# diff /etc/sysconfig/rhn/systemid /etc/sysconfig/rhn/systemid.save