An RPM is relocatable if you can install it like this:
rpm -ivh --prefix=/path/to/non/default/dir package-name.rpm
Without getting the following error message:
error: package package-name is not relocatable
This link states:
RPM has the ability to give users some latitude in deciding where packages are to be installed on their systems. However, package builders must first design their packages to give users this freedom. In other words, an RPM package that can be installed into a different directory is said to be relocatable. Please note that not all RPM packages can be installed into another directory.
It however does not explain why a package builder would not want to permit users the freedom to decide where to install the package.
So, why is it a good idea to make a particular package not relocatable?