My 2p. I have had major headaches in the past maintaining selenium tests. The main problems are getting selenium to wait until the client is in a certain state. I found checking for AJAX responses or other custom conditions to be very flaky. Sometimes the only solution was to Thread.sleep() which I absolutely hate. Since geb is built on top of selenium, I can't see how it solves the problem but maybe there's some funky logic that alleviates the pain. I've ended up using selenium for simple sanity tests and never try to get too involved because the maintenance cost is not worth it.
I must say that the spock testing in Tapestry originally put me off because I had to learn yet another language (ie groovy). I've since learned groovy and found it very simple to pick up. I think that groovy really excels in testing where you can very succinctly test code without the noise that java sometimes requires. So, Spock testing gets a big thumbs up from me but I can see how it might put some people off. Lance.