Bryan; Yes, plugins have no need to explicitly link with libtsutil. Therefore it is clearer if headers for code in that library are separated from headers where linking with a library is required.
" tsxs and our build tree should add libtscpp.so as a library to link with when using c++ automatically." I strongly disagree with this as well. There are many plugins written in C++ that do not use the CPP API. Why should they be linked with that library? I don't see why our build tree should add libtscpp.so either, since nothing in the core uses it. I would also note, that since include paths need to be the same, that putting the libtsutil files in the same directory as the libtscpp files will blur the lines *in the core*. I think that will end badly as well. I don't have an opinion on splitting out the C API in to a library,