Для системных вызовов передача более 3-4 аргументов обычно является плюсом.Причина использования регистров при передаче аргументов системному вызову состоит в том, что обычно при переключении в режим ядра вы меняете стек, поэтому вам необходимо получить доступ к параметрам, хранящимся в пользовательском стеке, используя средства с низкой эффективностью.Когда вам нужно передать больше информации, чем вписывается в 7 регистров, вы обычно передаете указатель на структуру, которая содержит всю информацию (вероятно, вы уже видели это с некоторыми системными вызовами в используемой вами системе)
Для обычных вызовов процедур стек всегда существует, поэтому максимальное количество параметров не является проблемой.