It may not necessarily be noticed, as static_cast will call constructor on CSprTex, so the instance will appear correct, therefore, if all objects in linked list are invalid, then they are all gonna be created anew when statically cast.
This is incorrect. Using static_cast<> with a pointer type will not call any constructors for the pointed at type.