Caches are required in SilverStripe (even in dev) as the performance is affected significantly. Most developers would prefer quicker loading development times (500ms to wait for the cms vs 3000ms for requests with a flush).
Whenever you run into this issue make sure you explicitly do a ?flush=1. If you get the error when you do a flush then check those files exist :)