I have noticed, like several other forum members, that L2A tiles produced with sen2cor have different color palettes because, after @bdpg, they are processed tile by tile.
Also if you have to mosaic images or tiles from different swaths the same problem will occur.
It is therefore necessary that SNAP’s mosaicing module includes options for histogram equalization (color balancing) between different tiles (e.g. overlapping layer, average etc.) as you have in IDRISI.
In the mosaicing window I chose the options shown in the image below, most importantly for Matching image gray level.
I ran this mosaicking module 4 times, each time mosaicking one band from the 4 tiles to be mosaicked. I did it for the VNIR bands (4, 3, 2 and 8) but i could choose any number of bands.
I exported the 4 mosaiced bands in Tif format and imported them in QGIS and fused them into 1 single stack file then I produced an 8, 4, 3 RGB composite with minmax stretching (I could have done that in IDRISI TerrSet too).
The 2 image extracts below show you the bands 8, 4, 3 RGB composites from SNAP3 (I have drawn a dashed line to show the seam clearly) then from QGIS after the processing described above:
The S2TBX L2A reader provides raw access to your L2A products, we just mosaic the different tiles together, but don’t touch the reflectance values, and it is intended to stay like this.
The root cause of the problem here is that sen2cor computes tiles independently so discontinuities can appear in the resulting corrected reflectance, because of discontinuities in AOT/WV retrieval. This should first be solved in sen2cor IMHO.
Having said that : a better mosaicking module for S2 data is on our roadmap. Performance is our first goal, but introducing functionnalities for equalization and color balancing there, as an option, is a good idea.
I advise you to use the mosaic module of Orfeo Toolbox (OTB 6) which is simply the best mosaicing tool I know of. I have tested it on landsat 8, sentinel 2; it always works perfectly.