Individual companions leaving on account of your actions is also nothing new in the genre. Even in the first Baldur's Gate you had it. It was much more basic than later games and was simply dependent on your reputation, but since than many RPGs had some form of mechanic like it. Larian the best approach would be to combine the approval system with something more scripted. Which means that if your approval rate with a certain companion reach a certain negative value, they will warn you they don't like the way you do things, and if it drops further they will leave.
Aside from that, you can make certain meaningful decisions in the game affect your companions. Example from DAO: if you defile the ashes of Andraste in her sample and you have Wynn and/or Leliana in your party, they will fight you to death.
All of the above methods for dealing with companions leaving the party are valid in my opinion, provided you have enough companions in the game to account for different playstyles. What is not valid is arbitrarily deciding to get rid of all your potential party members simply because they are not in your party at a certain moment. This is what I call a cheap game mechanic that its only reason to exist is to artificially increase the game replay value.