It doesn't depend as much on roles as it does on content that uses those roles. A page that has modules for each role will have to check user roles for each module it if there are hundreds of modules, then there will be hundreds of checks. This is alleviated by the fact theat the current user and its roles are loaded and the check is done against its values. Nevertheless I suggest grouping roles in higher units so there are less roles.
If deeper personalization is needed, develop a module that achieves this based on different rules built on top of roles.
Do you know the truth when you hear it?