The guy is actually way off. (Caveat: Not currently on my own phone, but children are and I've played with it quite a bit)
First the "add special code" bit is a complete farce. You simply recompile your code with the new APIs and fast switching is built in. There's literally nothing to do except hit "Build" again and post the app.
Second, the notion of "what the best trick of multitasking is" is even farther off base. Apple did a brilliant job of analyzing what is actually done with a phone, then exposing APIs that facilitate those in a non-battery-impacting way. The only challenge will be for idiots that don't want to understand a different way of doing things, who think that the only way to do it is to write their own daemons. It's ridiculous to assume that we want our phones to do everything and anything that a full blown computer does. Well, if you are one to blow your battery on such nonsense, then there are phones for you. But the iPhone will not be one. Bravo, I say. And this will be the way of iOS 4 for the 'pad as well. And personally, I LOVE LOVE LOVE the battery time and don't want to surrender it to some bonehead that doesn't know how to write a quiet background app.
Waiting for a YouTube video to buffer over a 3G connection? It won't go anywhere unless you're staring at the loading screen.
Well, if the YouTube app is not updated then it may just go that way. YouTube will need to hook into the same service for background pushing/pulling to effect that change. The Skype people commented that it took about a dozen lines for them to update their app to be connected to the phone API. The Flickr people said it took a couple dozen and a day to get it sorted out to add background uploads to their app. So what this really points to is laziness on the developer's part, not Apple problems: "I don't want to have to recode and could give a shit about the user experience. I just want to run my app in the background managed by the OS, rather than coding something that actually works in harmony with the device."
Let's be clear about what iOS4's multitasking is: Rather than run multiple apps at the same time, iOS4 freezes the ones that aren't in use, with the exception of certain functions. Music, for instance, can play in the background, VoIP apps can answer calls and GPS apps can give directions.
Yes, let's be clear: multitasking is the ability to do multiple things at once. This does NOT mean an exclusive alignment with the *nix notion of multitasking. That is perhaps the largest problem: if multitasking can only be defined by the way a full blown computer does it, then it falls short. But if multitasking means, literally, to be able to do lots of things at once then it is perfect. Again, the deal here is that the multitasking is executed in a way that is not as familiar to the writer, so he sees it as "sloppy." I'm really at a loss as to how he thinks the "full benefit of multitasking" is unavailable and what, exactly he thinks is missing. Perhaps for a game to continue to run while I'm not looking at it? What? What he's missing is that the GUI is not multitasking. IE., a game will not continue to run because it makes no sense AT ALL for it to continue to run while I'm in another task. But true tasks (like, where am I, play my music, listen for calls, continue my uploads, watch for messages and alert the user etc etc) are all available.