OpenSL ES is designed to be an especially useful audio API. Any advanced audio workstation apps, synthesizer apps, etc. are possibly going to have a lot of effects and internal mixing done by the programmers. Especially for portability of design and code, all that's needed is somewhere to put the output.
With OpenSL, if you want to play sounds simultaneously, you should mix them yourself and load buffers with the mixed sound. The easiest way to do this is to add them up sample-by-sample. Assuming each sound can achieve maximum headroom, divide by the number of input sounds. (This division can make the volume a bit low, but it takes some effort to get around it, assuming clipping is unacceptable.)
To mix 2 sounds, when you create a sample of the output (i.e., the data to be enqueued), you do this:
out[i] = (snd1[i] + snd2[i])/2;
(You may want to optimize the math, watch out for data types, and might use different indices.)
In general:
out[i] = (snd1[i] + ... + sndN[i])/N;