I feel like a lot of these complaints are endemic to defining things in CSS using 'px' as units instead of more sensible (and repsonsive) modern techniques like defining type in 'pt' and widths in more complex units (percents, or mixed units).
It's possible to avoid a lot of these pitfalls with better design.
1. User far from big screen: You can zoom much faster and easier with your forearm than a pinch gesture
2. User far from screen, unusual viewing angle: how much time to you spend browsing at awkward angles versus dead-on? This seems like a small consideration that would affect some types of sites more than others. I doubt a banking website would feel the same way about this as a social media website project for example…
3. Classroom projection is decidedly not the use-case nearly any mobile website is designed to work under, unless the website is cloud-based projection software, but that's a specialty thing in itself.
4. This is why we define font sizes in PT and no PX, this isn't a mobile or responsive issue, but rather a design choice in CSS
5. Does your mobile browser include a 'reader' mode that isolates text content and provides the ability to make it more legible in these conditions?
6. Ah yes, and what's even more surprising for people is how differently Mobile Safari calculates screen dimensions between iPhone and iPad! Then the difference between how iOS and Android handle keyboards, and then the difference at how those OS's handle browser verus web-app mode. There is currently no good solution to keyboard control.
Anecdotally, we ran into an issue on Friday where an email field was autofocused and the keyboard was popping up and obscuring what you were entering. I didn't make it that way, but I did provide the solution: remove autofocus for touchscreen users: http://staticresource.com/autofocuser.html This is a way that we can have one feature for desktop users where it speeds up entry, but target mobile users separately and provide a better targeted experience for them.
<script>
// Block autofocus for touchscreen users
onload = function(){
if(('ontouchstart' in window)||(navigator.msMaxTouchPoints>0)){
var field = document.querySelectorAll('[autofocus]');
for(var i=0;i<field.length;i++) {
field[i].blur();
}
}
}
</script>
7. I hear you there, I've felt the same way when reading long texts. Any easy workaround would be to allow the user to adjust the font size of the article text on the site within reasonable limits!
8. That's usually a problem with the difference between 'pixels' on your screen and CSS 'px' units. Defining layout in other units in CSS can avoid this problem on HiDPI displays.
9. Testing, testing, testing. I make sure to supply well-made fonts, I use a special set of CSS rules that control the rendering of text display so that the same font renders the same thickness in all browser's and OSes, and with those differences out of the way I can move forward using only weights that work (usually no lower than 400 weight unless the size being displayed is very large) and be sure that they are legible everywhere. Here's my snippet (and honestly, this cuts out SO many other common text rendering bugs):
*,
*:before,
*:after {
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-kerning: auto;
}
10. My job is to make sure that the experience of the desktop site, with all of its abilities, functionality, and information, are displayed in an equally recognizable, usable way on mobile. I don't cut features, I don't ever assume a mobile user or desktop user won't want anything. My job is to make it just as great everywhere.
11. Turn your brightness down, you only have one set of eyeballs.
12. I'm not sure panning and zooming will help you feel better when the room is spinning so fast you can't read.
I'm not dismissing these reasons, I believe many of them are small or fleeting and to change an entire project for one of these whims seems short-sighted. Other reasons listed here are 100% valid, and workaround can be found without enabling zooming.
For projects where zooming makes sense I wouldn't have it any other way, but I don't see a compelling case listed here to always have zoom enabled.