Какой вариант из двух выбрать: передаче по ссылке, или без?
Если вопрос по ссылке или без - то однозначно ответ лучше передавать не по ссылке, так как меньше шансов выстрелить себе в ногу.
Но как написали выше, тут напрашивается рефакторинг, так как почему функция с названием checkPermissions() производит модификацию данных? 
То есть это скорее getAvailablePermissions() или filterResponsePermissions() или типа того.

upd. Единственное что даст передача по ссылке, это экономия памяти, так как при передаче по ссылке не будут создаваться копии $permissions и $responses, но если у вас эти массивы не на сотни тысяч элементов, то экономить нечего.
POST тк sql инъекцию, сложнее произвести, чем через get