This probably even goes up to the playing time agreements. The AI manager probably ranks the player based on the agreed playing time. So an Important/Start player expects to play in all matches no matter what – so the AI automatically picks the player.
This would then escalate in a review of how a player ranks his used time. Having a player that is not 100% match fit skipping easier league matches so that he is 100% for a Champions League match isn't something that an Important/Star player would understand in game. When they moan about playing time, there isn't an option "You are my striker! In a CL final I start you" kind of message.
In an easy Man City save, I managed to have Halland moan about the play time (this was on FM22) just because I was not playing him in easy matches so that I could play other players for evolution.
Unfortunately, I think this is where it gets harder to code around. You would need some sort of priorities ranking linked to the manager vision/club vision where a manager might be more inclined to not pick the best player in favour of a new talent player. This would also need to be linked to the opposition and the importance of the match ahead (you would not want to start Halland in the CL final just because some lesser team managed to get to the final). Also, you wouldn't want to rotate all the team - only one or two players at time.
The more use cases you come up, the worst it gets. And because you want this dynamic, you wouldn't expect the manager to make the same decision every time.
Sorry for the big reply