Because the foreign machines are a motley collection of machines with differing capabilities and owners, they do not share a distributed filesystem on which to write output. Store the files on a disk, then send the whole file back by FTP or a similar protocol. Connect the standard output directly to a TCP stream back to the home machine. Both of these solutions are problematic.
Many users rely on log-like output to determine if their applications are running correctly.
In addition, the remote machine may not have enough disk space to store all of the output. Both of the objections are magnified for a program that is designed to never terminate. We expect users will be making use of hundreds of machines spread around the globe, and at any given time, some of them will be disconnected from the home machine. We want the user's to make forward progress when they are disconnected from home. Although the user prefers to have continuous output, a partitioned network should not bring all work to a screeching halt.