Sometimes for caching, sometimes for resources management, also some other purposes. Usually for outgoing HTTP port 80 only. Other ports will not pass through the transparency for SmarTone, the activities on the network looks like it has a transparent proxy, no idea for other ISP. If you want to bypass it, you may use some IP encapsulation protocols, they are on neither TCP, UDP and ICMP.
My experience on using SmarTone: I think SmarTone do not do anything about caching on APN:internet because changing DNS, local hosts file can give the proper result coming from the destination server, no idea for the APN designed for mobile phones(SmarTone), but websites detects a squid proxy and some time out error shows the word "squid", no such thing for APN:internet although SmarTone sometimes has their own time out error page but not browsers' own connection timed out error notice. I compared using two servers with different content, DNS record point to one and define another IP in the local hosts file and the content from the server is displayed properly.