Я бы сказал, никогда.
Если бы я хотел, чтобы что-то было установлено с помощью различных методов, я бы написал для каждого из них код, чтобы напомнить себе, что я сделал это таким образом - в противном случае вы могли бы в конечном итоге перезаписать вещи, не осознавая этого.
Разве это не должно работать так:
$ _ GET = неразрушающие действия (сортировка, запись действий, запросы)
$ _ POST = разрушительные действия (удаление, обновление)
$ _ COOKIE = тривиальные настройки (настройки таблицы стилей и т. Д.)
$ _ SESSION = нетривиальные настройки (имя пользователя, вошли в систему ?, уровни доступа)