Thanks Marco,
BTW 'possible references to the package name within the body itself', As you said sometimes this might not be a problem, since the Actual Package is already in the DB in 'VALID' state, So the Temporary one will reference the Actual Package if it needs to access it, but then again if you create a new Function or Procedure that is not in the Actual one, then it could fail I guess you are very correct in that sense.
I truly agree with CTzen