ちょっと気になったので確認。

Windows10(64bit) VisualStudio2017 + Python3.6

#define BOOST_PYTHON_STATIC_LIB  
#include <boost/python.hpp>

std::string g_bytes;
std::string get_bytes()
{
    return g_bytes;
}
void set_bytes(const std::string &bytes)
{
    g_bytes = bytes;
}

std::wstring g_unicode;
std::wstring get_unicode()
{
    return g_unicode;
}
void set_unicode(const std::wstring &unicode)
{
    g_unicode = unicode;
}


BOOST_PYTHON_MODULE(StringSample)
{
    using namespace boost::python;

    def("add", &add);
    def("get_bytes", &get_bytes);
    def("set_bytes", &set_bytes);
    def("get_unicode", &get_unicode);
    def("set_unicode", &set_unicode);
}

coding: utf-8

import StringSample

StringSample.set_bytes("ascii")
print(StringSample.get_bytes())

StringSample.set_bytes(b"ascii")
print(StringSample.get_bytes())

StringSample.set_unicode("ascii")
print(StringSample.get_unicode())

StringSample.set_unicode(b"ascii")
print(StringSample.get_unicode())

#
StringSample.set_bytes("日本語")
print(StringSample.get_bytes())

StringSample.set_bytes("日本語".encode('utf-8'))
print(StringSample.get_bytes())

StringSample.set_unicode("日本語")
print(StringSample.get_unicode())

StringSample.set_unicode("日本語".encode('utf-8'))
print(StringSample.get_unicode())
ascii
ascii
ascii
ascii
日本語
日本語
日本語
日本語
続行するには何かキーを押してください . . .

bytesはutf-8のバイト列と見なされるようだ。