Why don't app developers provide an option to disable caching or a self-cleaning cache feature (like in the Fedilab app)?
Most applications clog up the cache space on your device's memory. You have to delete the cache manually which is not convenient. Fedilab is one of the few applications that has a self-cleaning cache function when exiting the application.
Why don't many other apps have a feature to disable caching or self-clear the cache?
Interesting, I would guess most developers trust the caching mechanisms they are using will perform well long term, and don't consider that a user would want more control over the cache. Caching is inherently a performance feature, so it's probably seen as essential to user experience rather than an option
A lot of caching mechanisms are not based on time but size. In other words, they have some set limit of space they can take up on your device. Once that limit is hit, they start evicting older cached data. This means the cache will never be cleared but it also means it shouldn't grow unbounded.
If an app you've installed is "caching" and it has no eviction policy and can grow unbounded then that is a pretty big bug.
I have an old model samsung. There is not much free space, and the cache of some applications grows to 1-2 gigabytes per hour of operation (for example, the ibisPaint app).
Also, in some other applications, a large amount of cache is accumulated. I don't know how the cache clearing mechanism should work in these applications, but after a few days I have to clear everything through the application menu, which is inconvenient.
Most things like this come down to resources. You have a finite amount of development resources and this is likely way down the list of features. Especially as there's already a button to do it manually.
All features have to be planned, designed, implemented, tested and released. None of those steps are free.
Chances are the development resources are being spent elsewhere on more important features.