Site-level param change can be achieved in a service package, and Instance-level with application packages, so everything depends where you store your params.
For instance, we wanted to have some params for all the /dotlrn (and the instances below it), so, instead of putting them into dotlrn package (which can have multiple instances), we decided to put into dotlrn-portlet, which is a service, then, if we change their values, all the applications that use this service will have that change reflected and in our case, it made a lot of sense to put the params in the portlet.