pState.func()、funcA(pState)
どちらもpStateを渡して呼び出しているし、pStateを変更しただけです!と言えるのでは

副作用が嫌ならimmutable objectにすれば?