ну как бы то, что кодируется с помощью json_encode не должно лезть в локальную область видимости. Я бы даже сказал, не может по определению. Но, в общем-то, если исходить из цели "написание библиотечной функции" и народной мудрости "мало ли что пользователь передаст", то да, так лучше
p.s. видимо, никто на эти грабли пока не наступал, либо наступал, но не громко

Либо может из-за совместимости не меняют, хотя я такие варианты с трудом представляю...