1. You can have a connection and programming fire of with the same button press. Obviously this could create some undesired outcomes and typically isn't best practice. If you program something the a button the connection doesn't automatically go away.
2. Yes.
3. Yes.
4. You should absolutely be using connections for advanced lighting scenes with keypad buttons, simply for the ability to ramp/fade scenes with a button hold. You can replicate the rest through programming (with a lot of work to make LEDs track properly across multiple keypads, when fired off with app vs button, etc), but the ramp/fade is a doosy to do via programming. It can be done (timers, variables, etc), but it's not easy and won't ramp/fade as cleanly across the scene.