The splitting you talk about came about because of the Blit, one part
of a program running on the host, the 'graphical' part on the terminal,
i.e., the Blit; the two parts communicated with a simple protocol, an
example of which you can see in 'sam'. 'Cip', 'proof', 'jim', 'sam' and
'pi' (really, 'pads'), followed this model. It wasn't necessary I think
with all programs, and I'm sure 'icon', the bitmap editor, didn't.
If you look in the various Blit/Jerq source directories in the distributions
you will see programs with a 'host' and 'term' subdirectory.