No doubt they'll needlessly spread to code that doesn't require them - happened already with async and that is much, much simpler concept (than one of the most complex things, GATs).
This is definitely a case where you should look into traditional disk-oriented DBMS architecture.
Google the two CMU db courses, advanced and intro, they have the required material and references to understand, it's a case where practice > theory
For example, to reduce random reads in a b+tree (data structure used for indexes), you leave room for the index data to grow in the node, so your DBMS doesn't need to allocate a new page immediately (this new page read would be a random, non-sequential access on a later read). Google "index fragmentation" to find out more