I can't really address your question directly, but my path was sort of the opposite. We started writing tests in Groovy, using Spock and Groovy's built-in REST testing support. We quickly tired of Groovy, so switched to Java and TestNG, and found REST-assured to be a good Java-compatible substitute for Groovy's REST testing stuff.
I guess my question is this: If you're writing tests in Groovy, where do the built-in REST client and Spock fall short for what you need? As far as the confusion of two different sets of given/when/then statements, it would be hard to mix them up because they're used so differently between Spock and REST-assured. But I agree the names are weird. That said, in REST-assured, they're mostly there just to make the code read more like English.
Todd.