az költséges, ha a T egy objektum, hisz ott új temporary jön létre egy copy konstruktorból, de ilyet elég ritkán csinálnak
Ellenben a
static_cast<T*>(e)
esetén csak a pointert castoljuk, aminek semmilyen költsége nincsen, kivéve ha többszörös öröklődés van az objektumban, akkor léptethet valamennyit a pointeren.
A dynamic_cast az a rendkívül költséges, az sokszor egy sztring összehasonlításba torkollik minden hierarchia szinten.
Hogy az eredeti kérdésre válaszoljak static_cast az többnyire noop, azaz nem jár műveletvégzéssel, ezért eltárolni sincs sebesség szempontjából értelme. Többszörös öröklődésnél már elvileg lenne, de gyakorlatilag a fordító azt is kioptimizája, így ez az egész csak coding style.