@Christoph-Hart Adding -fno-strict-aliasing to the compiler flags makes the multipage dialogs show up again.
I think it's something to do with the way the std:bind is being used in these macros, I think it's confusing the optimisation system.
#define BIND_MEMBER_FUNCTION_0(x) std::bind(&x, this)
#define BIND_MEMBER_FUNCTION_1(x) std::bind(&x, this, std::placeholders::_1)
#define BIND_MEMBER_FUNCTION_2(x) std::bind(&x, this, std::placeholders::_1, std::placeholders::_2)
#define BIND_MEMBER_FUNCTION_3(x) std::bind(&x, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)
But this is way beyond my c++ foo so I could be very wrong.