This is missing the 5th and most important optimization technique: don't pessimize the code in the first place.
The usual culprit is "premature modularization", where code that is used in one place and is never going to be extended is nonetheless full of indirections.
In principle it can in general fit the points 1-3 when you view less abstractions as lower level system and code as a data structure and algorithm, what can also include different levels of parallelism.
> In principle it can in general fit the points 1-3
In principle, I don't think people would lump it in.