Original problem report against gwt-gradle-plugin: https://github.com/steffenschaefer/gwt-gradle-plugin/issues/18
At least one root problem we're encountering here is that Gradle will create a new ClassLoader when a build script is changed and we currently cannot compare non-primitive values that aren't files because Objects from different ClassLoaders cannot be equal.
I have developed an example project to reproduce the issue: https://github.com/eriwen/gradle-3-0-testing/tree/master/gwt
One very slow solution would be to serialize both Enum values.
According to my testing with the example project and tests defined in InMemoryTaskArtifactsIntegrationTest, this is not a daemon-specific issue.