I think porygon is good but where it really shines is in its I-run-an-offensive-team-and-have-no-bulk-let's-cover-as-much-as-possible-with-one-pokemon niche. I would say that's its main justification for use over snorlax, otherwise lax is just much more reliable and all its choices of sets can make it fit snugly on to nearly any team while still hitting harder and not suffering nearly as bad 4MSS and covering many threats more reliably such as chandelure, roserade, and zapdos.
It's a good mon, but just not reliable in enough areas to push up its usage. A good example of a jack-of-all-trades for a defensive pokemon.
A man can no more diminish God's glory by refusing to worship Him than a lunatic can put out the sun by scribbling the word 'darkness' on the walls of his cell. ~C.S. Lewis