I don't think I've seen a holistic document that tries to explain the whys of everything. You'd really need to just go through the history of changes, and look at contemporaneous mailing lists, announcements and conference presentations.
If you go back far enough, most of the algorithms are pretty basic. Lots of full array scans, which wasn't horrible because the arrays were tiny. The algorithms come from what was convenient at the time it became a bottleneck; lots of hashing, and then you increase the size of the hashtable because there's too many collisions (although sometimes that gets silly --- it doesn't make a lot of sense to hash port numbers when your hash table size is 64k, and it makes no sense to have a hash table size larger than that, because that's the size of the input space). And sooner or later you need to deal with having large numbers of cores all working on the same tables, and how that interacts with locking, NUMA, etc.
If there's some choice really puzzling you, you can probably ask on the freebsd-net mailing list, and get a reasonable answer.
I was hoping that maybe there is some book covering things like the one you described in the longest paragraph of your reply. I'm personally of opinion that such literature would benefit humanity greatly or at least that part that is doing design and programming around parts where networking meets kernels (in general, I'm also interested in non-UNIX kernels) and their internals.
Of course doing research on codebase itself is a potential way to go but I know too well from my experience years ago that it often leads to scratching your head about some parts for weeks without clear or any answer. Good literature that presents practical problems and presents different attempts on solving them has IMHO a good track record of at least decreasing amount of confusion while analyzing such systems. It also "somewhat offloads" community (developers included) from "consulting burden". As sometimes it takes even years to get answer to some technical questions.