This question addressed the question of APL overstrikes on printing terminals. However, IBM also had 3270 video display terminals that supported APL, as well, and those, too, handled overstriking. How?
It's important to keep in mind, that there weren't that much symbols using overstrike in basic (IBM) APL. By using an 8 bit codeset they all could be integrated. The most common charset was Page 293 which extends EBCDIC with all legal APL codes. Symbols that get generated per overstrike, like log (
⍟ which is 'Power-Overstrike' or PO), got their own code position (X'CD') and was handled as a single characters.
Later on terminals as well supported code page switching to handle the increased symbol set of APL2. Now a combination of Page 037 (the EBCDIC equivalent of ISO8859-1) and Page 310 could be used. Page 310 holds all APL(1) symbols at the same encoding as Page 293, but replaces the letter blocks with 'new' APL symbols as well as making the decimals superscript. Page 310 is, despite its alike organization, not an EBCDIC page, but a strict graphical supplement, not usable on it's own.
It's ASCII equivalent (for ASCII perhiperals) of Page 293 was Page 371.
Combining was handled by the terminal, not the mainframe. To work with APL, a terminal had to have this codepage installed, usually part of the APL package including the appropriate keyboard and the capability to handle overstrike.