Technically, whenever you add a shapefile or feature class to a mxd, Arc actually makes a layer file out of it. Things like symbology, definition queries, etc., aren't stored with the actual data. I didn't know this until I talked with an ESRI instructor at a class, because it's not well documented. This is why Python scripts sometimes have to make a layer feature first.