I sure didn't know that, was a learning for me. Thanks.
I have just given a small suggestion (may not be the answer to your question but an alternative).
I guess this is mainly used in virtual functions to maintain the spec. In non-virtual functions this wouldn't normally arise, as you can remove that entire parameter. Also could be used to catch exceptions and if the catch block is not going to use the catch parameter.
I just feel in such scenarios (virtual functions), if you want to retain the spec but not use the parameter at all, then you need not specify the parameter name. Also in catch blocks where you are not going to use the parameter, the parameter name need not be specified.
This shown with an example below (see the function f1 in ClassA and ClassB):