The ESP8266 is only a controller that needs software/firmware to function.
This software is stored inside external FLASH memory that is connected to the first SPI-bus, so it can't be used for other purposes.
However... in theory it is possible to share that SPI-bus with other SPI devices by using separate CS-lines for every device.
I've read about it in the past, but never done it myself, so I can't comment on any implications that might arise.
It's generally much easier to use the ESP32 instead if you're in need of extra GPIO.
Also, I'm getting close to the point where I'll need to send more data, right now I'm publishing to an HTML header, but I'll need to get data into the body and reflect the status of all the IO in one publication at some point to use an entire 12F. Mostly just to see if I can do it.
I think this would also help with a hanging issue I get with curl, my theory is that it's trying to read while the ESP is publishing. I thought I saw somewhere about sending a request, then the ESP would publish after receiving the request.
Sorry to ask so many questions....
Still could use some guidance with the other stuff.