When an out is assigned cache: false which was cached previously, this currently leads to weird behaviour of push/pull/checkout commands where the reason is not obvious to the user (see #10492 (comment))
As a suggestion, a warning (or maybe even error) when trying to specifically dvc push / pull / checkout an out where cache: false is set, would be helpful as there should probably be no reason to do this except if it's unintentional.