The first file given with the command is the output file. The following files are the files (usually a video and an audio stream) that should be placed into the new file as parallel streams. This is done on a per page basis and is very efficient and fast.
As oggJoin uses it's own timestamp creation method, both streams start exactly at start time '0'. This is always the case even if the original files started at a different time (due to internal timing information). So the video and audio streams are always synchronized. This helps using files from different live stream sources or cuted material.
In case of unknown stream types (other than theora or vorbis), there is actually (as of version 0.8) no timing interpreter available. So you can not use these streams for multiplexing.