Возможно, потому что в ASP.Net, предназначенном для платформы 2.0, предполагается, что он будет работать в режиме, в котором может потребоваться компилировать некоторый код на лету. Поскольку он работает в режиме 2.0, на этом этапе он получит компилятор 2.0 (таким образом, все, что зависит от компилятора 3.0, не будет работать)
При нацеливании на кодовую базу 2.0 из «нормального» проекта компиляция выполняется тогда и там, так что полагаться на функциональность компилятора 3.0 можно.