Great question. I personally like to question things like this as it helps clarify concepts.
For understanding this we might want to first look at where exactly the nodPort i.e. 30080
is exposed it, it gets exposed at the host level(a K8s cluster might contain multiple hosts) i.e. what this means is each host will have port 30080 for clusterip:80 of the nodeport service to communicate with it.
The K8s pod object does not have knowledge of the nodes at the cluster level or ports available to the external world.
The NodePort K8s object helps translate that i.e. take data from nodeport on the nodes to it's port at 80 and forward it to the target ports on the pod.
Hope that helps, if not happy to answer any more questions.