It would be nice if there was a way to tell compilers not to drop the lock stack and thus issue warnings when accessing a symbol that needs a lock inside `Assume`/`Assert`.

Hit by (at least): @ajtowns , @jnewbery , me.
{
    
    const std::unique_ptr<int> p_two = Assert(std::make_unique<int>(2));
    
    const int two = *Assert(p_two);
    Assert(two == 2);
    Assert(true);
    
    const bool result{Assume(two == 2)};
    Assert(result);
}
BOOST_AUTO_TEST_CASE(util_criticalsection)