Really interesting take Curtis!
TBH I wasn't aware that trunk-based development really means NO branches at all. From what I understand so far is that we have one trunk branch where all changes get merged (even with PRs).
One of the main differences for me is to have one ground truth code (which is the trunk branch) and that the pipeline is taking care of the rest.
For example, instead of having a development branch that only merges to the dev stage and a main branch that only deploys to production we have one branch and the pipeline takes care of both.
By having that we simply don't diverge from the two stages at all.
Probably my definition is simply wrong but I like that model a lot!
I do see some difficulties in trunk-based development also. For example, if Dev A merges code to the trunk and after the dev stage was deployed the dev recognizes a bug. That is the point where we have faulty code in the code base. Every dev who creates a branch now has the "bad code" in his feature branch.