C++ Coding Standards より。
// hoge.h で void f(int n); // hoge.cpp で void f(const int n) { // ... f の実装 ... }
これは、合法だそうです。関数宣言での const は無視されるとのこと。
関数の引数が値渡しで渡される場合、その引数が const であるかどうかは呼び出し側にとっては関係無い事なので、宣言で省略できるのであれば、省略した方が良いのでしょうね。宣言 (ヘッダファイル) を変更しなくても良いという事はインターフェイスに変更が入らず、他への影響が発生しないのですぐに実践できますね。最近はローカル変数含めて、変更の無い変数にはなるべく const を付与するよう心がけているので、早速取り入れたいと思います。