If I'm answering solely based on the examples you gave in your question, it doesn't really matter. Go with what is more readable to you.
However, for large projects, the second option with fake players is more programmatic and scalable. The way the game lays out player scores and objectives is more naturally inclined to have few objectives, but many players with various scores. I say this because creating an objective takes one command, and assigning a score to a player takes one command.
If we create variables using objectives and a single fake player, each new variable requires two commands: one to create the objective, one to assign the score. If we create variables using fake players, we need one command to create the objective, but every new variable only needs one command to assign the score. The command count alone is a slight performance benefit, and while I don't know how the code works specifically, the design of the objectives vs players would indicate more players is better than more objectives.
Additionally, you may find yourself wanting to use variables programmatically. It is easier to work with players as variables, because you can programmatically reference entities using tags in selectors. Objective names cannot be used programmatically because an exact string must be used every time. This does not apply to the exact examples in your question, but in most of my work I have to use selectors for programmatic access to variables.