I have not used specflow or gauge but I have used cucumber. It really fills gap between business folks and tester. Also BDD approach helps us keep sync between manual test cases and automation. Apart from this, reporting is much more easier in cucumber like frameworks.
Currently we have to use static objects only to use with different steps. I am currently exploring option to extend TestNG or use annotations, so that we can use driver object with different steps. This will even enable us to do parallel execution.