I have seen every combination of the above for PC's. I have one friend who will pretty much always take a feat if his scores are at least 16, and sometimes even before that (As a fighter he took shield master with a strength score of 12 when we started at level 6 rather than say boosting his strength). He spends most of his time complaining that he can't hit anything. even now at level 12 he has 15 strength (The warforged coming out lost him a point of con from my "homebrew"[The old packet warforged with +1 con]). That was an extreme case, more recently he took sentinel with a strength of 16, and at level 5 it woks out fine.
On the otherhand we have had people with 18's at level 1 and they have been 50/50 on feats. One monk took mobile and he loves it. Our sorcerer took the Asi and likes that too.
My rule of thumb would be you want at least 16 in the things you want to be good at to not feel like you're underpowered. My personal rule is 20 mainstat all the way, then you can take feats if you don't have a secondary stat. I value consistency in my die rolls over versatility in abilities. It helps that I always play spell casters and that gives me extra versatility.
I have only statted out a few npcs, currently the ones that are supposed to be powerful enemies all have the feats like Sharpshooter and Great Weapon Master. If it's not something that gives them combat effectiveness I don't feel the need to actually find a feat for it. For example a noble who went to wizarding school for a few years might be able to cast rituals and a few spelld but I woudn't consciously give him the ritual caster feat, and magic initiate feat. I think for the most part they just give the monster/npc the abilities without calling out specific feats.