We want to cache an infected asset for the same reason that we'd like to cache a clean asset - once an asset has been scanned, its state is not going to change because it isn't (currently) possible to replace the file attached to an asset. Uploading a new file would require creating a new asset, starting the process again.

There's a exception here for the case where an asset is scanned incorrectly and marked infected as a false positive, where we might have to go and set the state ourselves. In this case, the asset would remain cached for 30 minutes.