This was a very interesting one.
It turns out the difference is due to the type of image each client requests from your server. In the case of Explorer Online and the iPad app, they are requesting PNG24 images. ArcGIS.com requests PNG32 images. PNG32 images allow for different levels of transparency on the image and thus produce a smoother display when displayed over another image (basemap). The only thing I can suggest is to use a light color basemap, like streets instead of imagery. Your data displays better over it. I've passed this information on to the various development teams, but this is not necessarily a bug. PNG24 images are typically smaller in size than PNG32. Thus they may have decide to sacrifice a bit of visual quality for performance, especially on mobile devices.
In the second part of your question, you're adding an individual layer of the map service to the map (and filtering it). This is drawing the data in a different way. In this case, you are actually getting the actual geometry of the features and they are being drawn by the client application (like a feature service works). Thus, you've taken the image out of the equation. However, as you may have noticed, you don't get any labeling because that's part of the image. From a performance perspective, you could take a performance hit as the number of features you have to draw increases. In your case, you only have a small number of features, so the download and drawing times are small.
Hope this helps,
Mike