Specifications. Greater hardware means more compatibility with ported Android and IOS apps.
Say what you want about Windows Phone not needing Dual-Core but I used Third Party apps and boy, if you think Android is laggy wait till you use Slacker Radio or Accuweather.
Not really.
The biggest challenge is normally the API that devs have to work with. It determines what they have access to.
Sure, there is normally a minimum spec needed, mainly in the GPU. But for almost all apps and games, the spec required isn't very high. Rarely does a developer create something that will only run on the very top few mobile devices.
Devs do want native code access or DEEP APIs so they can tune PERFORMANCE.
And there's also always going to be some devs who don't tune for performance, and you'll get a sluggish app like Slacker radio on WP. That may have bern from lazy coding, or bexause they didn't have access to a necessary API.
Android more than its fair share if poor performing apps, even on their very top phones because some devs just didn't really care.