Setting up Snowflake — the exact grant statements we run

Has anyone implemented the model where you create object and functional roles and grant roles to other roles? Can you share pros/cons?