Heck, i think with some clever symlinking you could in theory dump a rpm into its own (optionally versioned) subdir and still have it working in the grand scheme of things.
The biggest stumbling block for current package management is that of versioned libs. Usually they work around this by putting different package names on different major lib versions.