I'm thinking about what would be necessary for it. It seems doable to me. First, one would need to separate the simulation into different domains, define interfaces between them, and then figure out appropiate time stepping for the simulation so the domains are properly coordinated. Depending on how low-level the simulation needs to be, getting the needed data for the parts might be problematic. However, when that data isn't available, then maybe the simulation can just randomly create plausible values, and do the simulation for these values. In reality, every part has slight variations so every board is unique too, when inspected closely enough.
There is also a lot of merit in a simulation even if it can't go very deep, say, considering quantum mechanical effects inside the IC's. That may be practically impossible due to unknown data, or just give impractical performance. But there are a lot of use-cases that don't need that level of detail.
What level of detail is realistically possible? If we know that a certain level of detail is too slow to simulate, then writing a simulator for a higher level is easier and we need less data for the models.