Das ist absolut in Ordnung. Sie sind kaskadierend, also gewinnt immer der letzte (unterstützte) Stil mit der gleichen Wichtigkeit. Es ist ein häufiger Fall, einige CSS-Regeln durch eine andere Klasse zu überschreiben, sodass der Browser mehrere Instanzen derselben Eigenschaft zur Auswahl hat. Warum sollte das nicht in derselben Klasse erlaubt sein? Abgesehen von der zusätzlichen Codezeile sehe ich keine Nachteile, aber wenn Sie alte Browser unterstützen müssen, benötigen Sie einen Fallback.
Ich nehme an, Sie wissen, dass 500px nicht immer die gleiche Breite/Höhe wie 50vw/vh sein wird, also ja, ein Nachteil wäre, dass es in älteren Browsern anders aussieht. Aber aus syntaktischer Sicht ist nichts falsch.
Ich würde vorschlagen, dass Sie [Sass] (http://sass-lang.com/) anstelle von CSS verwenden, dort können Sie Bedingungen haben. Oder vielleicht in css probiere etwas mit @media. –