May be off topic because it is not a direct ArcGis solution:
For an simple routine you could use the GDAL tools gdal_merge.py in conjuction with gdal_translate to merge and cut the geo-tiffs on a data level (geotiff for example).
You will need python as well as gdal. You could install osgeo4w for windows, to get both tools in one step.
The "best-how-to-aspect" depends on the location and extention of the image cut's in the tile set you want to proceed. In a worst case it will have a fractal nature. A wild mix between many small footprints on the image borders at one side versus one big footprint overlapping many image tiles.
At least you could use a common resampling approach:
calculate and sort the image cuts vs. the tiles that are involved and store them in a list.
cut minx miny maxx maxy tiles
1 10 10 2100 4200 (1,2,3,4)
2 310 310 2100 4200 (1,2,3,4)
resort the list and create an list of unique merge tasks
merge the tiles and procced the cut for
each corresponding cut-image (pseudo code)
tiles = readTile(tileList)
cuts = readCuts(cutList)
foreach tile in tiles:
proceed("gdal_merge.py -o temp_file file1, files2, file3, file 4")
foreach cut in cuts.getID():
id, minx, miny, maxx, maxy = cuts.getExtentFromCutList(cut)
proceed("gdal_translate -o cut-id -projwin minx maxy maxx miny temp_file"