It seems from reading and experience, that when the classes are located in the rmiregistry's classpath, they can not be downloaded from the codebase by the client. I was before starting my registry from within my server program using 'createRegistry()'. However, when I do that, the registry ends up having the classes in its classpath, and thus the downloading does not work.
To fix this I start the rmiregistry externally, and make sure its classpath is blank. Now, things work. This does however mean I must have classes duplicated. Once in the server classpath, and once in a location to be used by the rmiregistry. (I guess I could map both to the same place)
Anyway, I just want to confirm that this is the case. And that there is no way around this issue. Its not that big of a deal, but I did like the idea of the registry living and dying with my program.