QUOTE
Will this be valid even for other encoders, such as oggenc.exe (and flac.exe)?
In my experience, starting 2 instances of a program such as lame provides an overall speed boost of 1.7 times, rather than exactly 2. This is because there are other overheads to think about, than just CPU number crunching power. So, starting one application instance causes 50% total CPU usage on an SMP system, becuase it is exeucting withing the time frame of 1 CPU (i.e. it is using 100% of 1 CPU's resources). Starting 2 instances usually uses 97 to 100%, however the first instance will slow down a fraction, due to the overhead of the 2nd instance.
Programs which are truely work sharing multithreaded are coded so that the overheads of having a 2nd thread running are kept to a minimum (3D renderers, etc). In those cases, the boost is often over 1.7 times normal speed.
So, in short, yes, that almost always holds true for all apps which you can manually 'multithread' by opening two instances.
There are other ways you can speed up threads on SMP systems (and i assume HT as well), like devoting 100% of a known CPU's time to the task and moving all other running processes to the other CPU, but that sometimes speeds up, sometimes slows down. In both cases, the difference is usually on 3 to 5% either way.