I'm not sure that your description of generalization coincides with the idea of modeling abstraction from TFA. Modeling abstraction is "about identifying what should leak and leveraging it". Generalization is about making something cover more cases. The technique to achieve these things can overlap of course, but the intention/goal is different.
Generalization is surely more than coverage? At least to me generalization is unveiling a principle or unifying lens that yields extended coverage, the principle being the meat. The coverage is the result of the unifying lens that makes previously different pieces look like cases of the "same" thing.
So it's kind of bottom-up/"data" driven as opposed to abstraction being more "engineered into" the system.
That is, to me abstraction is building things such that they look the same. Generalization is discovering things are almost the same if tweaked a little to look the same under a certain lens.
Does that make any sense? In this view I guess the generalizing lens can be become the basis for an abstraction. I would assume the loop is closed between the two somehow but I can't quite see it.
> abstraction is "about identifying what should leak and leveraging it"
vs
> Abstraction hides unnecessary detail.
Sounds like these ways of describing abstraction are in agreement with one another to me.
If you hide what’s unnecessary you’re left only with the things you think should leak. And you think they should be left unhidden so that you can use them for something, so to leverage them.