p.s. CTEs are inherently NOT reusable anywhere except the query that they live in. They can be referenced as many times as you need to with the understanding that they DO work like views and the entire CTE will be re-executed every time it's referenced.
Views don't have such a limit because they are a separate object. They, too, will be executed once each time they are referenced even in the same query.
CTE's are inline code and you don't have to go anywhere else to find the code for it. Views are separate objects and, if you want to see what's in the view for code, you'll need to open another window and go look at it separately from the code you're working on.
Views can also be constructed with CTEs and an outer query.