In what sense is it reasonable that beating a lower team lowers your ranking? That's not the behaviour of a sensible system. You shouldn't be able to lower your ranking by winning.
It's not like this is difficult to achieve, this simple set up will do it:
1. Give 0 for a loss, 4 for a draw, 10 for a win
2. Take the same scoring system used but instead of calculating a score, use the scores as weights.
3. Weight each game by its Fifa-style score.
4. Weight games according to their time slot in some manner.
5. Bosh. Done. Every team gets a score between 0 and 10 that can be used to rank them.
You might need to cap the scores if the team has not played any high quality opposition in recent times depending on how much that happens.
It can lower your ranking because lets say you're 10th, and you play Mongolia and thrash them 47 nil, but because they are so crap the points weighting system means you only get 150 points. That's fine but the team in 11th place were 300 points behind, and they went and beat, I dunno, Holland, and got 800 points.
England win, but drop to 11th, because the team in 11th won, and won against a much much better team.
The rankings and points you gain ARE weighted, it's why a win against a no one is worth 150 points and a win against a good team is worth a lot more. You don't get minus 150 points for beating someone crap, you are just gaining less points than the other teams also winning who are winning against better teams.
England for instance, as did Holland, CHOSE to play someone crap, rather than playing better teams, and other teams CHOSE to play harder teams, they got more points for making the choice to play better teams. Why should teams beating better teams not be considered better.
The article directly stats the formula, and it's basically exactly what you are asking for. 3 points for a win, 1 a draw, 0 a loss. Then you have this
M: Result of the match - win (3), draw (1) defeat (0)
I: Importance of the match - friendly (1), World Cup qualifier or confederation-level qualifier (2.5), Confederation level or Confederations Cup match (3) and FIFA World Cup match (4)
T: Strength of opposition - No 1 ranked team (200) down on sliding scale to 150th ranked team (50) and all teams below also 50
C: Strength of confederation of opposition - Europe/South America (1), North and Central America, Caribbean (0.88), Asia/Africa (0.86) and Oceania (0.85)
points = M x I x T x C.
If you beat the rank 1 team in the world, from the rank 1 federation, in the most important match in the world(world cup games) you get the most points. if you play a friendly, against 150th ranked or less, against an asian/african/oceania team, you get smeg all.
England CHOSE to play a team that would fair badly in the rankings, weighting, and did this repeatedly. Other teams picked tougher teams.
The consequence of this rankings system is, if you balls up loads of group games, and lose to most of the better teams you play, you won't rank or seed well......... what part of that sounds wrong precisely? Are we saying that if England draw loads of group games, lose against the better teams in friendlies and can only beat crap teams in friendlies..... that we should automatically rank and seed somewhere in the top 10? The system as is, is MUCH fairer than people say.
The Swiss ranked highly because in the past year in particularly, they've played well and had good results, exactly how is that unfair if other teams didn't play this well?