I think Zwift algorithm must be enhanced to account for grade when giving points per km. People avoid doing the mountains and even the hilly routes because they want to accumulate faster points to get better bikes and other rewards.
For example the 20xp point should be the starting point per flat km but then Zwift should reward:
1xp extra for each 100m +3%
2xp extra for each 100m +6%
3xp extra for each 100m +9%
4xp extra for each 100m +12%.
Lets say I ride 1km at +9% I get 20xp base points + 3xp x 10 extra points = 50xp for the km.
This will reward better the rider effort and not solely the distance and will make more people chose the mountain/hilly routes.
You can also subtract some xp points for downhill kms if you want to be completely fair. But usually the downhill kms don’t fully compensate the time lost on the uphill sections.
Also including a sprint in the Vulcano circuit will make the circuit better. I see less and less people choosing the Vulcano route and I believe the main reason is the fact that the flat route has the sprint section.