The Add Join parameters just deal with keeping all records in the resulting joined table (parent + join), regardless, if there's a match to a record in the join table (KEEP_ALL) or only keeping records in the resulting joined table where there's a match of the parent and the join (KEEP_COMMON). They don't create this full outer join result that Chronnie's referring to
I found a blurb on ideas.esri.com from someone talking about a possible solution to Chronnie's question, i.e. how to do full outer join. Here's an excerpt:
This is currently supported by a geoprocessing tool called "Make Query Table." It can execute standard DBMS-style outer joins between multiple tables, and if the shape column from your spatial data table is included, then the result is an in memory feature class. The result can be "re-hydrated" each time you open the same ArcMap document, or you can use the "Copy Features" geoprocessing tool, or standard ArcMap data export, to create a permanent new feature class.
The only limitation on the Make Query Table tool that might cause you heartburn is that the feature class and table you want to join have to exist in the same workspace, and I think that shape files and dBase tables aren't supported. Personal, file, workgroup, and enterprise geodatabases are supported, however.