Ja ist klar, du reichst das Array aus func_get_args() aus foo() als 1. Parameter an bar() weiter, da muss es ja ein Array im Array sein.
Wenn Du die Parameterleiste von foo() 1:1 an bar() weiterreichen willst, wirst Du es indirekt tun müssen, mit
call_user_func_array('self::bar', func_get_args());
arbeiten müssen (Callable als 'class::method' für statische Methoden ab PHP 5.2.3 verfügbar).
Rolf