Different types of proxies do different things.
A VPN proxy will commonly receive largely unprocessed packets as the payload of the packets actually crossing the network, translate the headers to it's own interface, and send them without looking at the data at all. This can implement a TCP proxy, but requires special configuration on the machine using the proxy, and can easily cause protocol failures if the server is expected to establish it's own connection to the client, as can happen with FTP.
A SOCKS proxy starts out with the socket in "SOCKS mode", processes the SOCKS commands, and uses the received information to connect the another socket to the destination, doing as little modification as it can afterwards. This does not implement a TCP proxy.
An HTTP proxy assumes from the start that incoming connections will be in HTTP, and looks for any headers specifically would tell it the desired connection point, inevitably resulting in errors if a different type of connection comes in. This does not implement a TCP proxy.
Different types of proxy work in different ways.