Greetings,
So the problem with the black border is that most often these values are zero's (0). However, once you compress the data with compressions such as jpeg or jpeg 2000, in order for the compression to work as nice as it does, it changes some of these values. Hence, when you say background 0,0,0 is nodata, you start seeing the black speckles.
Resolving this is more tricky. You can clip the black border and write out a new dataset (possibly undesirable because of time and space constraints). If you have 10.0 you could use a clip function based on a graphics or feature to accomplish the same in-memory. If you have 10.0 and are using the mosaic dataset, then you can recompute the footprint to accomplish the clipping automatically.
Hope this helps.
Robert