"Redeclaring" exposes the implementation details (in the form of that specific exception) of the underlying module to the modules that should not be otherwise even aware of that module. As the result, when that signature changes (a new exception is added) - you have a domino effect.
So full policy is as follow - if you met checked exception:
- if you can handle it "to the point", handle it
- if exception is appropriate (has sense as part of the method contract) do not catch it, but redeclare it (really, it should be declared already)
- if it represents implementation detail or pure technicality - wrap in RTE and re-throw
Here's link to the famous interview with Anders Hejlsberg (chief architect of C#) where the subject is discussed in more detail (specifically, re-throwing issues, etc.). You probably have seen it, but just in case: