He mentions a lot of things that can suck, but I see those as symptoms of not having a branch model rather than not using trunk.
For instance, you solve almost all his complaints by doing:
git flow
no long lived branches
frequent pulls of develop into your feature before merge
that’s pretty much it
The downside of his approach is that the trunk is always fucking broken because people are breaking each others shit constantly and people end up pull broken state when checking out.
The advantages given by a good branching model far outweigh the slight added complexity of managing your branches in a clean way.