Treating the path as a ledger of contributors, rather than as one number, is what makes an optimisation argument possible.
stage who controls it what makes it vary
----------------------------- ------------------ ---------------------------------
wire to NIC nobody switch queuing upstream
NIC to your code you, partly interrupt vs polled receive
decode the message you branchy parser, cache misses
book update you data structure, allocation
strategy decision you lookups, floating-point work
order encode you string building, allocation
your code to wire you, partly syscall vs bypass, TCP vs UDP
NIC to venue nobody distance, cross-connect, queuing
Read the third column first. The rows where the variance is yours are the rows worth work, and they are not always the rows with the largest mean contribution. A parser that is quick but allocates on one message in a thousand can own your tail while contributing almost nothing to your average.
The rows marked "nobody" set a floor you cannot optimise past in software, and knowing that floor stops a team spending a quarter on a path whose remaining budget is smaller than the switch's contribution. This is also the honest answer to "how much faster can you make this" - you subtract the fixed terms first.
The other use of the ledger is attribution during an incident. If you have a timestamp at each boundary, a widened tail localises to one row in minutes rather than becoming a week of argument. Systems built without those boundaries end up debugging by bisection over commits, which is far slower and often inconclusive.
Finally, the ledger tells you when to stop. Once no row you control is larger than the noise in your measurement, further work on that path is unmeasurable, and the next win has to come from removing a row entirely rather than shrinking one.