Думаю это вполне нормально. Роль, по сути, это тот же Permission, который содержит другие Permissions. А по поводу getPermissionsByUser я бы сделал Pull Request ;)
Вобщем-то я видел эту статью. И что? Там довольно примитивно описана одна из фичей БД. А меня интересует опыт полноценного использований это базы в боевых условиях.