Ich würde niemals via T2A einen Buffer erzeugen aus einem Const, der für Rückgabewerte verwendet werden darf/kann. Man kann schon, aber der Effekt ist begrenzt auf die Implementierung und auf die Art und Weise ob diese Makros überhaupt etwas tun.
T2A etc benötigt man ja auch nur, wenn man umwandeln muss. Im Allgemeinen ist das aber oft gar nicht nötig, wenn konsequent UNICODE / MBCS entwickelt wird, bzw. TCHAR überall direkt verwendet wird.
BSTR sind mit Sicherheit keine Lösung, aber ein Ansatz, den man in COM gut und gerne nutzen kan. Habe ich ncihts mit COM zu tun, meide ich BSTR's.