There's another wrinkle in this that I just realized. My .sar is actually deployed inside an exploded .ear.
There is no hot deployment of anything but the top level components, which in this example is the ear. The reason is that there is a shared class loader/type system that cannot simply be refreshed. Until java has a proper notion of a runtime refresh of loaded classes(this somewhat exists in java5), we won't support this notion.