For a phone app I like RideWithGPS. It works good and is a good system for creating routes. I can create a route on my computer or my phone. Also a lot of clubs and organized rides have routes in RideWithGPS. I have my RideWitGPS account linked to my Garmin account so if I pull up a route on my phone or computer all I need to do is pin it and then sync my GPS.
Most of the time I use my Garmin 1030 plus. I like it better than my other Garmins due to the larger screen. I like the GPS for most of the reasons you list. Plus it's easier to read the screen in daylight.
For your point 1 that is only true if one is using a speed sensor and the other is using GPS. RideWithGPS and Garmin will use the same sensors. I don't think a speed sensor is more accurate but it's faster responding to speed changes.
For your point 6 I have a Garmin watch and I use it a lot of times when I don't have my chest strap on for hart rate. I set it to broadcast wrist hart rate and the GPS picks it up.