I think it's either got to be class or freeform. And the thing with putting it in the class is that it's almost certainly where a freeform player would choose anyways. I don't think the game needs to care if the player makes a suboptimal choice. I think freeform is simply the easiest.
I suppose if you want to go maximally complex, you could add ancestral abilities that key off the ability you improve. For example, maybe a Dwarf who improves Str gets one benefit, while a Dwarf who improves Con gets another benefit, etc.. That's cool, but I think it's probably way to many rules for ancestries. It overlaps with subrace to some extent, and probably encourages ribbon benefits (i.e., benefits that you'll never actually use or don't actually accomplish anything). Worse, if they're not ribbon benefits then you risk creating de facto ancestry bonuses anyways.
I will say that I think +1 bonuses are relatively a poor-ish design. They don't feel fair no matter how they play out.