仕様かバグかは調べてないのですが、iOS10.2では発火することがありました。
詳しい発生条件はわかりませんが、挙動を見るに、少なくとも、
- touchstart => touchend の間に touchmove を挟まない
- touchstart => touchend の間隔を0.1秒程度以下にする
の2つが揃うと発火するっぽいです。
※ iOS9では再現しませんでした。
documentではなくwindowに張ると発火しないので、windowでも良いならwindowに張ろうと思いました。