call_user_func_array('self::bar', func_get_args());
PHP 5.6 hat außerdem einen spread-Operator, womit man die obere Zeile leserlicher schreiben kann:
   self::bar(...func_get_args());
In Kombination mit dem rest-Operator für variadische Funktionen kann man MBs Problem-Programm sehr einfach lösen:
class args {
    static function bar(...$args) {
      print_r($args);
    }
    static function foo(...$args) {
      self::bar($args); // $args in bar = [['a','b']]
      self::bar(...$args); // $args in bar = ['a','b']
    }
}
args::foo('a', 'b');
 nicht angemeldet
 nicht angemeldet TS
 TS Rolf b
 Rolf b