Depending upon your hardware and operating system, most implementations of multicore at an OS-level will do some degree of load balancing either intentionally or not. If I run a single-threaded task that chews as much CPU time up as it can, it'll show up as 25% in the task list on my quad core and the four CPU graphs will hover between 20 and 30%.
It is possible that if the current implementation doesn't run physics and rendering in parallel using multithreading the program is spending a good while waiting for vsync when it could be processing physics for the next frame.
It is possible that if the current implementation doesn't run physics and rendering in parallel using multithreading the program is spending a good while waiting for vsync when it could be processing physics for the next frame.