I understand that writing to GPIO will in the end write to the OLAT and this might not make a practical difference. But since the function name says it writes to gpio - it also should write there, I would argue. Right now it does setRegister(MCP23017_OLATB, val); which is inconsistent with the writeGPIOA() function that really writes to the GPIO.
Other than that, really nice extensions to the original functionality, thanks!