In reply to sbellock:
While the standard indicates parameters are technically legal within a package, one should only use localparams within a package. And a localparam cannot be modified with a defparam (which would be the only way to modify a package parameter value). You also cannot modify a parameter value procedurally as you've shown.
Parameters within packages don't make sense; one doesn't explicitly instantiate a package. There's only one package globally instanced.
From your example - what would the tool do if you had more than one module trying to modify the single package parameter? Who would win the assignment?
I'm not sure why the standards body explicitly allowed parameters within pacakages, but I can't think of any valid use case.