i'm surprised no one mentioned civic si. fun to drive. reliable. front drive. high resale. and brand new at your price range. subies are nice but at 20k, you'll be looking at an impreza...a little anemic for my taste. don't get a used wrx or evo....most are driven very hard and tinkered with especially the turbo and the ecu.(chipped). mazda speed 3 is a tad over the 20k mark plus i'm not a fan of turbo cars. s2000 is an awesome car...one of my favorites and i had many to compare to...some owned some belong to friends...from the old air cooled to the new water cooled 911, c4s, turbo, gt2 and gt3. boxter, cayman, bmw 3 and 5 series, m3, m5, z3 and z4, audi a4, vw gti, air cooled rx7's to the last rx7's of the mid 90's. wrx, sti, 280z-350z, supra turbo, hardtop mr2, civic si, viper, vettes, camaro's, mustangs, f150 lightning.....and the list goes on. did i mention i like cars?....lol.
i do strongly agree with buying american but i don't see a car that would fit the mentioned parameters(stressed on fun). german cars are too expensive to repair and none can be found for 20k.....don't buy a used german cars. i don't buy used cars any more.....don't like to tinker or pay someone to tinker with it constantly. i lease most my cars but that's not for everyone.
imo, civic si fits your bill and would be my recommendation.(oh you didn't mention if stick is ok with you?!?!?). if no stick, then tough to find fun new car with automatic around that price....civic coupe, mazda 3 hatchback, impreza, camaro and mustang-- rear drive but can always budget for some snow tires.