Need to check result only in one or two places (to avoid accidental variable deletion instead of modifying). In most cases only string result is needed.
But in that form I loose ability to easy use it in form like 

    return win32ConvertWToUtf8(somfunc(win32ConvertUtf8ToW(str)));

With bool return this nice code is transformed into

    std::wstring wstr;
    win32ConvertUtf8ToW(str, wstr);
    std::string strRet;
    win32ConvertWToUtf8(somefunc(wstr), strRet);
    return strRet;

I could replace pointer to bool with reference to bool. Than function can use it without check for NULL.