Cyril Mottier from the GreenDroid fame wrote an insightful and thought provoking article about pull-to-refresh on Android. Read the full article here: “Pull-to-refresh”: an anti UI pattern on Android.
While you have good points I don't think they all aren't that meaningful and I'd like to present some counter arguments to your points.
You say that the gesture is invisible. While it is true that it is invisible I do thing it is very easily discoverable on lists that shoe newest information on top. The natural way to see if there's more is to try to scroll more which will automatically expose the user to the functionality. There's no need to be a techie. Also, the Android's way of showing list end doesn't have relevance, in my opinion, with pull-to-refresh. Even on iOS the pull to refresh is not associated with the bounce. You are pulling an extra element to view.
By far the biggest thing I have to be on use of pull-to-refresh side is the same reason I strongly advocate use of swiping gesture for moving between tabs. Pull-to-refresh is an action that can be performed in any place of the UI. It does not require reaching for an icon in action bar.
I also don't think that having to be on top of the list is a downside. When tapping refresh you need to scroll up anyways to see the new items (apps should not behave like G+ app that springs you to the top when there are new items).