No bo tak to ma wyglądać.
A w jaki sposób się to różni od wywoływania tych niewirtualnych z jednej wirtualnej, poza tym, że ten drugi sposób unika rzutowania, kodu, który decyduje na co właściwie rzutować, oraz upycha zachowanie obiektów danej klasy do tejże klasy?

edit:

A rozumiesz że nie chce w jednej metodzie wirtualnej zamieszczać wywołań do np. 20 innych metod bo mi to najzwyczajniej w świecie niszczy abstrakcję klasy?
W jaki sposób? Wirtualną w klasie pochodnej implementujesz jak Ci wygodnie, bazowa i inne wirtualne robią swoje. Żadna abstrakcja nie jest zniszczona, a wręcz odwrotnie - właśnie się tworzy. :P

Mam w argumentach render() dac 10 parametrow ktore beda mi sterowac poszczególnymi wywołaniami? Co jak takich funkcji będzie 10 albo 20? Hm?
Możesz w ogóle nie mieć parametrów do render. Jak wyżej - jeśli Chmura potrzebuje wołać jakąs swoją metodę w render() - to niech woła. I dwadzieścia innych specyficznych dla niej metod też. Co to ma za znaczenie dla bazowej albo innych pochodnych?