Cohort scheduling mostly addresses the first of these, and somewhat the third.
By preserving locality in these cases it tends to make things a bit worse for the second - and largest - category of cache contents.