Common Table Expression (CTE) benefits?
As a rule, a CTE will NEVER improve performance.  

A CTE is essentially a disposable view.  There are no additional statistics stored, no indexes, etc.  It functions as a shorthand for a subquery.

In my opinion they can be EASILY overused (I see a lot of overuse in code in my job).  Some good answers are here, but if you need to refer to something more than once, or it's more than a few hundred thousand rows, put it into a #temp table instead and index it.