Virtual work is exact, the problem is everything else
Virtual work is what is known as an "energy method". It finds the structure's stable configuration by simply stating that the work done by internal forces must be equal to that done by external forces. And since that's basically the law of conservation of energy, it must be exact, since that's a rule actually followed by the real world.
The problem is that getting the exact result involves lots of integrals and I'm not even sure if they're analytically solvable.
I'm not sure because I'm a structural engineer, and that means I'm lazy. I don't need the exact result, I need something that's close enough to get the job done.
So I don't just use virtual work to get my solutions. I use virtual work and a bunch of simplifying assumptions. I assume that materials are linear elastic, meaning that if I double the stress, I double the strain. I assume that we're dealing with small deflections and rotations, which lets me simplify a bunch of trigonometric functions which are otherwise a headache. And since the deflections and rotations are small, they probably won't change the line of action of applied forces in any meaningful way, so I can assume geometric linearity.
The sum of all these assumptions (and there are many others I haven't gotten into) is what you're talking about: so long as these assumptions hold, I can state that if I apply a force $P$ and get a stress/strain/deflection $x$, a force $2P$ will give me $2x$.
Now, to be clear, all of these assumptions are false.
No material is perfectly linear elastic, but those we use are reasonably close to being so (prior to yielding, of course), so it gets the job done.
Our "small deflections and rotations" simplification leads to errors (compared to using the true trigonometric functions, but they're very small, so it gets the job done.
Lastly, the subsequent assumption of geometric linearity. Sure, if a column bends a bit to the side, the axial force will start creating a bending moment, but the deflection is so small... taking that into consideration would just be a headache and I'd rather get the job done.
That being said, geometric linearity is the first assumption to fail catastrophically. There are cases where a structure is so flexible that the deflections lead to non-trivial changes to the line of action of applied forces, which increases internal stresses and therefore strains, which means greater deflections, which further changes the line of action... you get a feedback loop which may or may not be stable (that is, the structure might deform and suffer greater stresses than anticipated but eventually reach a stable configuration... or not).
These are what we call "second-order effects" and are something worth keeping an eye out during design. Thankfully there are rules of thumb which indicate when those are relevant, in which case we pull out the big computational guns and ensure they are properly handled.
You'll learn these methods and rules of thumb eventually, but for now, rest easy knowing that these assumptions are your best friends. Because without them, everything's a headache (thankfully computers don't get headaches, though).