Hm. Strange. I considered strictly versa. 
```
extern (C++) void bar1();
```
pragma (msg, bar1.mangleof); //should be prinnt ?bar1@@YAXXZ on Windows (in VS mangling case) and (_Z4bar1v) for GCC mangling. It may be useful in some cases. For example I want to pass existing mangle with some changes to pragma(mangle). 
Furthermore: from dlang.org
>.mangleof	string representing the ‘mangled’ representation of the type

No word about linkage or calling convention.
And I think that any user expect that `.mangleof` should return _mangle_, not "mangle in some cases, identifier in some other cases". For that goal exists __traits(identifier). Use it if you want to get identifier.

Please get example, when this behaviour will break human logic or cause some troubles. 
Now you have wrote "what should be" as you opinion but haven't wrote "why it should be".