Sorry for not replying earlier - completely missed it. Anyway, your questions are quite valid and I can answer some, to the some extent, from pi4j library perspective:
"Is this interaction entirely based on sysfs?"
I don't know. pi4j's (one, current) implementation is supposedly based on https://projects.drogon.net/raspberry-pi/wiringpi/
"And what if I must control a GPIO using Interrupt ad not a polling mechanism?"
"What happens if I use PI4J? It seems that everything is based on sysfs."
But that doesn't necessarily mean that it will just pull values. My understanding is that the moment new value is available (interrupt serviced?) sysfs will have new value and return it to all streams reading from it (ref: https://github.com/Pi4J/pi4j/blob/maste ... nterrupt.c
). Pi4j uses that behaviour and waits for read until timeout (10s) or new value supplied. If I am right (Robert S. can confirm or deny it) - pi4j does relay on interrupt for value changes, even if not directly servicing it.
BTW why would using sysfs be such a bad idea?
Also, as pi4j is nicely defined by interfaces I am sure we can have another implementation over time that could be more efficient and bypass sysfs...