That's the reality of simulations. Every simulation is as good as the input.
That's clear. I will add: "...assuming that models for the components you use exist and the simulator does not crash with syntax errors", which is where ngspice does not shine.
If you're wildly browsing the internet trying to find spice models the simulation ends up likely junk. Garbage in, garbage out.
When they work at all, they work for me, most of the time. Again, I understand the limitations. Edge cases, switching conditions, power-on transitions, real silicon pecularities, complex processors are to be tested in hardware anyway. LTSpice runs well with what I have attempted so far. Proteus runs perfectly, I was able to simulate (interactively!) entire devices in it, but no complex things so far -- no MCUs etc.: where these are required, I use dummy voltage sources and resistor or transistor primitives in place of the actual device's i/o pins. Simulating those sounds like more hassle than wiring them up on a breadboard anyway, which is the opposite situation than that of discrete analog and simple logic parts.
Modern semiconductors are so complex that many models are just either for AC or transient analysis. It is important to open the spice model and read what the model does. By no means the simulation model represents what is truly inside on the silicon level.
Not my case really. I don't develop complex (or any) boards for commercial production. I need simulation mostly for ancient ICs like CD4xxx/HEF4xxx and some basic comparators and op amps for my DIY stuff that I mostly do for fun, however sometimes I actually use what I create. Even there, with the most jellybean parts, ngspice fails before it starts, that's even before we can talk of whether the simulation results are realistic.
My use case for simulation, again, is to get an answer to "is the wiring correct? did I not mess up the inputs and outputs? will I get the expected signal at a given output when a switch is pressed or a particular voltage is fed to a given input?" before proceeding to breadboard proofing and PCB design. I use simulation to verify concepts and get a qualitative estimation, not to make precise measurements.
Proteus works for this. LTSpice works too. Both offer huge libraries of models, regardless of the software's price (insanely expensive and pretending that individual hobbyists do not exist, vs free for personal use).
Ngspice only works if you can find compatible models, which are scarce. Any given user, including myself, can improve it for themselves by learning the spice syntax and its various dialects, which will allow to rewrite certain models to become compatible with ngspice. Its syntax is not uncomprehensible, so it is feasible, but it makes me remember my Fortran days, and that, I'll say, was somewhat of a mixed experience.
In other words, ngspice is as user-unfriendly as it gets and assumes quite a steep learning curve even before you start using it for anything beyond its builtin primitives. This is quite unlike other simulators that I have tried. That being said, I have a feeling that I'll get there eventually. Yes it is possible to launch LTSpice (it works well under wine) from KiCad via the netlist export dialog, but it's so inconvenient and LTSpice's UI is so ugly, inconvenient, and outdated (much more so than that of KiCad, and the latter is improving because of being in active development) that probably adapting the LTSpice models to ngspice is a better way after all.
Speaking of Proteus, well, it gets the job done, but I hate to be using a pirated copy, it is glitchy under wine, and its PCB design functionality is rather lacking, buggy, and the UI is poorly made. Apparently they cannot afford hiring a UX specialist. But I'm not paying, so I can't complain, that's why I want to move to a FOSS solution instead.
I work at TI.
Speaking of TI, the fact that many, if not most of the parts, have freely downloadable pspice models on the TI website, is great. Kudos to TI for this.
PSpice models also tend to work with ngspice more often than the LTSpice ones, based on what I have tried so far.
There used to be a downloadable archive that contained all the models, but it shrank over time and now it's completely empty. Not sure what the motivation behind it was and whether it was intended, but maybe you could ask someone around who might be controlling that stuff to see if they could restore it
. It'd be useful to be able to conveniently have everything locally in a single package.