I do it more or less as pictured. If I have the space, I'll go for more symmetry: the vias go along one side, and the traces entering and exiting both make mitered 90 degree bends over to the row of vias. Or if it's a right angle, some space can be saved by placing the vias in a diagonal row and connecting top and bottom layers accordingly (like a keyboard matrix).
Best is to follow the buses back to their origins and swap any pairs you can, at the source, or along the way. If you are very tight on space, you can use this method to distribute the space taken up by the swap, along the route.
If you have large pads (SOIC or DIP, say), you should be able to get a couple swaps for free, by weaving traces between pads.
Ideally, you keep enough space at the row of pins to simply exit that row from the other side, flip the bus around and be done, but sometimes that's not possible.
Equivalent-function ICs can help, too. Compare 74HC273 to '573, etc. The former usually sucks more, but, who knows, maybe the quirkiness happens to win for once!
Tim