Basically you are correct, the balloon driver is usually used to reclaim memory in case of contention. However, it's also used to prevent a VM from allocating more memory than set with the limit. In this case the balloon driver actually reserves guest memory to force the OS to swap.
see e.g. http://www.vmguru.com/articles/hypervisor/7-memory-behavior-when-vm-limits-are-set-revisited for details.
André