Just speculating based on the information given:
(1) If you run a multi-module maven project, you may find a test in a different module populates the @Cacheable method's cache. Cobertura only works at a module level, not project level So if a test from Module A calls a @Cacheable method from module B, it may populate the cache, however that does not count towards code coverage of module B's method.
A test that subsequently runs in module B will then get a cached result and not go into that method, hence cobertura might think that method was not covered.
I can see you are dirtying the context. This should clear the cache AFTER the tests run though, and not before - so that will not ensure the cache is not populated before your test is run.
IF this is the possible cause, I'd recommend you clear the cache manually before the test starts.
To do this try inject the cache manager with an @Autowired, and in the @Before section use the cache manager to clear the cache of that method.
Give that a try and see if your coverage problem is solved.
(2) If that doesnt solve it, I'd lean towards it being one of those cobertura not playing well with proxy issues - possibly making the CacheEnabledService implement an interface and testing against the interface will solve that (not sure if that will help, but its worth a try)
(It might be worth also seeing if removing the @Cacheable gives it coverage, to see if that is definitely the annotation which is the root cause of the issue)