It's currently only possible to have 5 custom permission sets (other than the stock Admin permission set).
For a larger organization, it's not unreasonable to imagine them having more than 5 different types of roles with varying levels of database access. Lots can be achieved through Path-based point person assignments, but there is a lot you cannot customize (broadcasters, for instance) without using a specific permission set.
Hey Jeff, thanks for the suggestion. We designed our permissions system to be highly customizable in the access you could provide within a given permission set but limited in the number of permission sets you could create so that an admin could reliably account for who has access to what. We're definitely open to revisiting this model, so stay tuned to this suggestion to see if others have similar needs.