結論
標題通りです。
Procfile に release タグで書いてもうまくいかないときもあります。これはずばり「リリースフェーズ中のファイルシステムの変更はアプリの Dyno formation にデプロイされない」ということが理由です*1。
この場合は .procfile に書くという逃げ道があります。
問題点
.profile なので、たとえば $ heroku run bash でシェルに入るときに毎回実行されてしまう。したがって、内容は冪等になるものであり、かつ、時間がかからないものにしないといけない。
「あなたが今やっていることはちょっと変なことだよ」ということの証拠だと思うので、とりあえずこじんまりとまとめるべき。
補足
- 実際問題として何に困ってこの方法にたどり着いたかというと、PostgreSQL に接続するために証明書がいるのですが、それは「ファイルのパス指定」でしか対象を指定できないことです*2
.profileの実行とProcfileのrelease:の実行順序については、Procfileの方が先です*3- このため、いろいろと辛みがあることが存在する