Normal behaviour for a dispatcher is to delete the target file and then invalidate parent levels (if ResourceOnly isn't set). The deletion is documented here: https://docs.adobe.com/content/help/en/experience-manager-dispatcher/using/configuring/page-invalida...
In ACS Commons there is a tool called Dispatcher Flush UI. https://adobe-consulting-services.github.io/acs-aem-commons/features/dispatcher-flush-ui/index.html. When using this, it seems to be possible to invalidate the target file, rather than delete.
Invalidation is preferred in my current deployment. If AEM is unavailable we would like to serve stale content rather than an error. This is only possible if the dispatcher retains an expired file rather than deleting it.
I have observed the OOTB flush instruction delete the file and the ACS Commons tool not delete it and then replace it on the next call. Therefore I believe there is some setting to allow invalidation over deletion. I can't find any documentation on this, nor locate it in the ACS Commons source code. Do you know how the request varies to allow this to function?