a. A Full Node is a Full Node even when incoming traffic is ZERO
b. Even when "a" is the case, one is supporting the network's consensus mechanism.
Your Bitcoin Core instance, no matter what you do, the incoming traffic is never zero. You would have a certain percentage of incoming traffic because your node wouldn't be able to function without. Your node is a full node because it is a validating all of the transactions and the blocks. Traditionally, full nodes are the opposite of SPV nodes and this fits the definition.
1. Why bother enabling 8333 port forwarding? There must be a reason why bitcoin.org recommends
"The bandwidth sharing guide describes installing Bitcoin Core in detail as well as opening port 8333 to allow other Bitcoin programs to download blocks and transactions."
The Bitcoin Core instance that you have has 10 outgoing connections without your portforwarding. These 10 outgoing connections wouldn't exist if your peers didn't open their port 8333. This is why we recommend people to open their port if they're able to, this ensures that the nodes can connect to others.
2. A few years ago, when I had trouble enabling 8333, there was strong pushback at this forum suggesting that my "Full Node" was incorrect as is and in question.
That's the issue with this definition. Traditionally, you are a full node when you are running Bitcoin Core regardless if you're allowing incoming connections or not. There was a thread discussing this:
https://bitcointalksearch.org/topic/why-pruned-node-is-full-node-5229380.