First of all you can forcefully compile only view not package.
Package cannot compile forcefully but view can because view may refer to table which is yet not defined or not exists. So in this case you are creating view forcefully but its status will be INVALID.
But after defining the referred the table we can recompile the view again to make it in to VALID stat.
This feature is useful in parallel development environment where multiple developer can work on same table while table is still in developing phase (ie yet not created).