From a quick look at your sample, it looks you're dereferencing a nested field on the self-injected service proxy: That won't work since you'll get a CGLIB proxy with uninitialized fields that you're not supposed to access on the proxy instance. You have to go through public non-final methods there which the proxy can actually intercept.
That said, why are you even dereferencing that field on the proxy to begin with? Only the service proxy itself has transactionally decorated methods: If you're calling methods on a nested delegate there, those won't be transactional in any case. Or am I missing something?