No, the speed boosts are definitely not whole-number multipliers - you can calculate the actual efficiency with Amdahl's Law.
So very dependent on the implementation of the program, some things can simply not be parallelized.
Of course, there's a lot to do with the actual CPUs as well.
OS X is using a Mach-based kernel. Funnily enough, Mach came from the acronym, Multiprocessor Universal Communication Kernel(don't ask me how that works). As the predecessor, it made a lot of progress for IPC and multiple threads - but don't let that fool you, it actually has little to do with multi-core processors at the time, just multiple threads. The handling of that across physical cores on a single chip - that's all SMP. Not sure when SMP really came around for OS X, although I remember them touting multi-core improvements during Leopard, probably some headway then?