The life of an engine depends GREATLY on how it's taken care of. If never run lean, after run is used, and the intake and exhaust is covered when not in use...heck yeah, it will last 20 years!
Other than running an engine hot and lean, I think the biggest killer is dirt and moisture. If you go flying, and then take your plane home and throw it on the shelf in the garage until the next weekend...guess what happens? You've left fuel residue in the engine that just loves moisture...so...moisture creeps into your carb and muffler openings and starts doing what it does best...corrosion. You've also left nice sticky oil residue in the carb opening...and it does what it love to do...attract dust! So now it's the next weekend and you go flying...the inside of your engine has a teeny bit of corrosion started in it...but not enough to notice. Also...the first time you fire the engine up you suck all that garage dust down into the engine...it's like nice fine sandpaper...but doesn't do enough to notice...heck your engine runs great and you have a great weekend of flying...so what do you do? Take your plane home and throw it on the shelf in the garage until next weekend

...and then you wonder why your engine starts loosing power the next summer...and then within 2 or 3 years it's a total turd and will barely run and has no compression.
So, always run your engine a click or two rich, zing some moisture displacing after run in there at the end of the day, and cap up the exhaust and carb openings when your not flying, and yep...you may still be running that engine 20 years from now