I'm not an expert but I'll try and explain as I understand it (I may be wrong
)
When an RPM is 'built' it is dependant upon certain files that are not necessarily required for the program to run being present. When you install the RPM on your machine, if those files are not there then the program may not install or run correctly even though they are not 'really' required. For me the convienience of an RPM far out weighs the odd time things don't work properly so I prefer them.
If you compile a program then the only requirements are those of the program itself. You also have the option to specify parameters (dependant upon the program) that can range from various facilities being enabled to where it is installed. Compiles are far more flexable but not as convienient (for me anyway)
HTH a little