I'm working on a PCB which is basically multiple MCP23017 GPIO expanders driven from I2C. As I layout the board (in EAGLE), I frequently find places where using different IO pins would avoid vias and other routing complications.
But of course, the standard library part for this device doesn't allow pin-swapping, because that would be a functional change in the design. In my case, I'm also writing the software to drive the I2C, and in most cases, it's a simple re-ordering in code, to use a different pin - so it would be no problem for me.
(Especially since the MCP23017 allows pin-level selection of in/out mode)
Given this, is there a way to achieve pin-swap like functionality when laying out? Going back into to the schematic to adjust things manually is awkward but what I have been doing so far. I'm aware I could clone the part into a local library and edit the pins to enable pin-swap, are there any drawbacks or downsides to this?