Thanks for your quick reply. One application is described in the KSS manual, chapter 10.10.4 RESUME (at least for KSS version 8.2). If you want to use interrupts to break your current path (e.g. because of a signal coming from outside) and then continue with another movement, you have to use subprograms.
One possible solution for implementing subprograms would be like the "weave" component: inputs for a number of commands, and for a name of the function. Or you could have a component that accepts a CMDS input and a name for the function. In that case the component could be placed behind the weave command. The output of this component could then be feeded into to the KUKA|prc core component and put a the end of the template. The subprograms can't be simulated in the main program, but if you use another KUKA|prc core component, you would be able to simulate them on their own.