I am on vacation, so sorry for the 'not-so-professional' post. Once I am back I will dig more into this and hopefully will find out what exactly is misbehaving.
I have big time issues with touch events interfering with smooth scrolling in iOS and started digging, found out some disturbing stuff.
For example in core-header-panel I see code like this:
<div on-scroll="{{scroll}}">...</div>
where the scroll handler is not really bound to any frame timing or throttling but instead is directly executing code and also is directly accessing scrollTop.
When we were little kids the big guys at Google used to teach us NOT to do that, but instead wait for the next animationFrame (in Polymer this translates to 'this.async(..)') and then do as little work as possible and let it go.
Now, I start to wonder: are the guys at Google considering this to
a) not be part of the best practices anymore (things tend to evolve and they should know how it works internally),
b) not needed because of some magic going on with declarative event handlers that take care of this timing/frame issues or
c) simply do not care/think that this is not important in this case...
Or is this may be simply a bug/omission?
Interesting fact - in iOS when I have core-header-panel inside core-header-panel inside core-header panel the console is flooded with mouse move events and take ~ 60 ms which completely breaks the scrolling. Another interesting fact - if I have 10 core-header panels as siblings (actually section elements being the siblings of core-animated-pages) the scrolling is completely trashed in Safari mobile but just fine in Chrome. I know Google cares mostly about Chrome but a nice 'do not do X if you want to be running fine in other browsers' could help penetration of the project a lot.