Not dumb by any means.
yes and yes. Although I have not done this but others say they have.
No reason.
Yes leave the libraries as they are. The only additional effort on the part of the maker is to compose the serial response back to NR via MQ in the format described by the info page for that particular chips UI. A tiny effort when the payoff is drag n drop connection and integration with higher level services.
Not at all daft. I have described it above somewhere but here is another go. In NR you have an MCP23017 front end (derived from existing front ends so not much effort for those in that game). In the info page for the device you simply state the format of the outgoing message. Say 'channel_n=y', the info page also defines what the response should look like. e.g. 'channel_1=x, channel_2=x...' where x is 1 or 0, or all channels are returned as a binary string '0101100110100110'. It is up to the developer of the NR front end as they will have written the code to unpack the returned message for use within the flow.
At the sharp end there is an incoming message (format also defined by NR in the info page). The maker talks to the hardware (they do this all the time) ad format a response in the way described above and bingo. End to end happiness. NR have static definitions for chips that never break with node and makers familiar tools and libraries remain in tact so they are cozy too.
Not at all. Just a NR front end to a chip so anyone can wire it and integrate with other services.
Is that any clearer ?