C#4.0仕様の「7.13 The null coalescing operator」には、次のように書かれています
それ以外の場合、 b の型が B で、 a から B への暗黙的な変換が存在する場合、結果の型は B になります。
私の理解では、それはA0 から Bである必要があります(A が null 許容型の場合、A0 は A の基になる型であり、そうでない場合は A です)。
int? a=null;
long b=5;
a??b
int(つまりA0)からlongへの暗黙的な変換が存在するため、type forはlongです。
私の見解が正しいかどうかを確認してください。