It's not always necessary for `PrincipalsDAO.updatePrincipal` to also fetch the principal. At the DAO level I'm thinking it's better to only do what the method says it's doing, so you don't have things like notifications require reading a full principal object every time you want to just increment the `notificationsUnread` count.