He's wrong about he offline app, but he's bang on with the multiple column key. That has caused nothing but heartache for me.
Particularly the three-part series.
Multiple-columns can be hard to deal with. But duplicate rows because you're using an autoincrement integer as your pk are also a pain in the ass. Measure twice, cut once.
I suppose in a fully normalized world of enterprise db architecture this could be an issue, but most real world applications aren't built that way.
In reality, speed is key, models are simple and normalized data is usually the bottleneck, and as such, de-normalized PDQ.
I know the theory is whack and risks problems, but reality pays the bills in most cases, so it wins.