I was just looking at plugin.php trying to answer the above question and I couldn't work it out. The actual code that calls filters is this:
do {
foreach( (array) current($wp_filter[$tag]) as $the_ )
if ( !is_null($the_['function']) ){
$args[1] = $value;
$value = call_user_func_array($the_['function'], array_slice($args, 1, (int) $the_['accepted_args']));
}
} while ( next($wp_filter[$tag]) !== false );
If (int) $the_['accepted_args']
wasn't there then it would simply pass everything available to the target function without any adverse affects for functions with less formal params.
0
to prevent filter from passing any parameters. That gives more flexibility to use functions in filters without writing special versions/wrappers of them just for that.