Объясните, пожалуйста
1. почему нельзя два раза вызывать std::mutex::lock() (т.е. не вызвав перед вторым вызовом unlock())?
2. почему это UB, а не исключение, например?
В Win API поток может заходить повторно в метод защищенный WinAPI-шным mutex-ом, если я не ошибаюсь.