Hi Daniel,
The limited (if any) options to manipulate strings like file paths in model builder quickly turned me to Python, where things like that area easy to do. Here is how to core of the script you described might look like. I would have to try that and tweak it to be able to publish that as a service, but hopefully it is clear enough to get you started.
import arcpy
import os
osj = os.path.join # define shortcut for a function
# if you need inputs, get them like so:
#some_input = arcpy.GetParameterAsText(0)
#some_other_input = arcpy.GetParameter(1)
sde = 'Database Connections\database_connection.sde'
ows = r'c:\output\workspace'
# lookup of feature class - exported file name - where clause
lookup = [
(osj(sde, 'M_X_CASING'), osj(ows, 'xCasing'), ''),
(osj(sde, 'M_X_AERIAL_MARKER'), osj(ows, 'xAirMrkr'), ''),
(osj(sde, 'M_X_WITHWHERE'), osj(ows, 'xWhere1'), '"COLUMN"=\'high\''),
(osj(sde, 'M_X_WITHWHERE'), osj(ows, 'xWhere1'), '"COLUMN"=\'low\'')
#, ...
]
exported = []
for item in lookup:
fc = item[0]
out = item[1]
wc = item[2]
result_i = arcpy.analysis.Select(fc, out, wc).getOutput(0)
exported.append(result_i)
# exported is now a list of results but you may not need that
# you will definitely need to set some output, like so:
arcpy.SetParameter(1, exported[0])
# you may want to zip the whole output directory and
# set the zip file as output
# http://resources.arcgis.com/en/help/main/10.1/index.html#//005700000078000000
Filip.