As for using Catmull-Clark subdivision at runtime, it wouldn't be impossible provided we could be sure which vertices were 'the same'. Subdivision requires surfaces to be linked as a whole, not as individual triangles or triangle strips. If we merged ones which were in the same position, we could end up smoothing things together that aren't the same object, but are touching, and could also miss ones where floating point inaccuracy has put two copies of the 'same' vertex in places which look the same, but are minutely different.
OS: Windows 10 64 bit Professional
CPU: AMD Ryzen 5900X
RAM: 48GB
GPU: Radeon 7800 XT
CPU: AMD Ryzen 5900X
RAM: 48GB
GPU: Radeon 7800 XT