I think the approval/disapproval system could do with quite a bit of tweaking.
Characters not in your party should not gain approval/disapproval immediately. I think for bigger events/decisions it would be more immersive to have conversations back at camp where they heard about what you did. Additionally, there should be persuasion checks that influence how much approval/disapproval you get. A person with high charisma, for example, could talk their way out of a lot of situations and possibly even turn disapproval into approval. Or, maybe someone approves of what you did but you're an ass and say you did it for the wrong reasons, turning approval into disapproval. I think it would make interactions, and by extension the companions, feel much more real.