A trick: a «before» plugin can avoid declaration of unused last arguments if it needs not modify any argument

https://github.com/magento/magento2/blob/c58d2d/lib/internal/Magento/Framework/Interception/Interceptor.php#L118-L126

The call_user_func_array function allows a callee to have less arguments than is passed.
A proof: Online PHP editor | output for lJpkZ

class A {public function test($a) {return $a;}}
echo call_user_func_array([new A, 'test'], [1, 2, 3]);

1

https://github.com/magento/devdocs/issues/516

https://github.com/magento/magento2/issues/3326

See also: