While it's all well-and-good that WPF is somehow 'inherently' thread-safe, it has a downside of actually making it harder to get stuff done right (and so potentially makes the consequences worse as you have even more complicated code to wade through).

So you're telling me that you prefer WinForms "multithreading"?! That is, accesing a control from a different thread is not allowed in theory but in practice it works or not depending on the control type, windows version and the phase of the moon.