Поток чистит за собой все ресурсы, которые есу принадлежат и о которых он знает, тоесть они расположены на том же уровне абсракции или ниже.
А в данном случае: мьютекс не принадлежит потоку, он им занят, более того о существованвании буст мьютекса он вообще ни сном ни духом.
Не освободил - это значит не был взван релиз мьютекс, а он небыл вызыван потому что поток был пристрелен через TerminateThread, который был вызван TerminateProcess, который в свою очкередь был вызван ExitProcess, который вызывает crt, после выхода из мейн. Так пнятно?