a) effectiveness. The ending performance should be similar like your current patch, but without necessity to use planner support API.
b) because you can write only var := j->'f', and plpgsql forces cast function execution, but not via planner.
c) nothing else. It should not to require to modify cast function definitions
pgsql-hackers by date:
Соглашаюсь с условиями обработки персональных данных