The code was previously using boost::signals2 for communication between net and net_processing. Because there are no other participants and the relationship was completely static, this was providing no value.
Boost signals are rather complex and expensive compared to a direct function call: They involve locking and roughly a screen full of backtrace, an they make the control flow less clear. In places where there are multiple participants or wiring that changes, they can be worth their cost-- but none of that is being used in this case and I can't foresee it being used here.
I also found that removing this indirection resulted in a ~4% IBD speedup on top of #9415.
Perhaps someone has a reason we should be using this? I asked sipa before opening this PR but didn't seem to know.