O limite do heap é o limite do heap da JVM apresentado para aplicativos Java (nenhum programa Java pode alocar mais que a quantidade de espaço no heap), mas não limita o tamanho do processo Java (que inclui o heap da JVM) que você está limitando, além de quaisquer itens alocados pela própria JVM, mais a pilha (para a JVM e seu aplicativo Java), além de outras coisas que eu quase com certeza estou deixando de fora.
Normalmente você não verá muito mais do que 10-15% de aumento nos limites definidos, mas casos patológicos provavelmente existem, e pode até haver um vazamento de memória ou outro bug no próprio Java Runtime (depuração de boa sorte que porco).
Se você quiser limitar o tamanho do Java Runtime no nível do sistema operacional, você provavelmente deve procurar o ulimit
. A JVM pode manipular esses limites normalmente.