WPF may be great, but I have following major pain areas leaving aside the the learning curve associated with WPF/XAML):
- Visual Studio XAML Designer is painfully slow. It is pain to wait for designer to load even a medium size (say 500 lines) XAML once you swtich to Design view. Everytime you change to another file, it seems to be compiling the XAML code that's why it is slow I guess. For that matter, if you are creating a complex GUI, not much you can do with the Designer, every thing has to be coded in XAML. That's not bad, but at least they could have given an option to disable the Designer.

- Another problem with WPF/XAML is, all data binding has to be specified in string, even for variables which is already defined in the code. For example, I have following code in my XAML code:
<TextBlock Text="{Binding Path=NumOfItems}"></TextBlock>

Here NumOfItems is an instance variable in the some class. Make a small mistyping in variable name (NumberOfItems in this case) it will still compile fine, nor it will trigger exception, it won't simply display the value. This small thing otherwise should
have been caught by the compiler to make life easier. This also makes intellisense useless in such case where we need to specify variable as string?

Overall, WPF may be a great initiative towards creation of ultimate framework for GUI programming, but it has its own set of problems which needs to be addressed before it will be hugely successful.