Is it true to say:
A) OUTPUT chain is for the packets that are "generated" by the machine itself i.e. OUTPUT chain affects connect() function.
B) INPUT chain is for packets that are "addressed to" and will end at the machine i.e INPUT chain affects bind() and listen() functions.
If yes, why would you want to control these features on a firewall? A firewall is not a web-server which listens to port 80 or a client which connects to that port.
Am I right to assume these chains exist only to address the needs of a multi-purpose machine (which is, say, firewall and web-server at the same time)?