I see json_decode() to be pretty useless without setting it's second parameter to true to obtain an associative array.

What can you do with an stdClass object? Iterate over it? get_class_vars() returns an associative array of what could be built directly by json_decode($str, true).

A stdClass object simply is not really useful, and json_decode() has no way to define using another class like mysqli_fetch_object().