Yeah, call_user_func('strlen', 'hello world') works but call_user_func('array', 'hello world') does not. But for ugly syntax, it's hard to beat the $ sigil being required everywhere for no reason at all (unlike Perl where it actually did something).
You're right, I was a bit hasty and didn't consider that. It sure does look like a function though, where other languages typically use {} or something similar.