Layer 9: What can't OpenFlow do?
What I found is that OpenFlow model (match and action) cannot handle the policies where the action of a rule depends on the action on other rules. For example, in rate-limiting policies where we want to share remaining capacity of a link in a fair manner, we need to know what happened to the other flows that may have a separate rule.
Besides, the counter model of the OpenFlow may not be enough for measurement tasks especially when the latency between the controller and the switches is so large that it cannot adjust rules so often. Sketches may be an option to replace counters.
Note that OpenFlow is somewhat of a moving target, both in terms of the spec (now at version 1.3.1, which I think supports some of the things that Keith mentions), and in terms of research proposals for further evolution.