Hola chaly, he probado eso, y es cierto lo que dices, de todas maneras es que me raya un poco, por que en la rama positiva la intensidad pasaba toda por el colector del transistor de la fuente de intensidad, en la rama negativa no ocurre esto y eso me desconcierta un poco.
quiero enseñarte una cosa que he diseñado para que me des tu opinión a ver que te parece (acuerdate que soy un iniciado de analógica así que no me pegues si no te gusta

)

como ves la parte de los transistores de potencia es igual que tu diseño (pero solo para 3A) pero he cambiado un poco el control.
sigue teniendo el transistor de protección por si todo lo demás falla.
la resistencia shunt es medida por un amplificador diferencial de ganancia 1 y esta tensión es comparada con la que le dices que debe tener, desde el microcontrolador, esto entra de nuevo en un comparador y de esta manera regulamos la intensidad máxima que puede circular, si le das 0,66 voltios con PWM(o DAC) concuerda con pasar 3A por la resistencia de shunt.
he pensado también que se podría poner un amplificador de X5 para la resistencia shunt para comparar tensiones un poco mas altas con el PWM del micro, pero esto es solo el circuito resumido a lo mínimo.
el amplificador operacional de mas a la izquierda da la referencia de tensión proveniente del micro con un factor de multiplicación x5 de esta manera para 5V---15V o 2,5V---7,5V
de esta manera nos ahorramos un AO y los ADC del microcontrolador ya que damos directamente las referencias de tensión e intensidad que queremos, otra ventaja que veo, es que se podría calibrar por software, por ejemplo, vamos subiendo el PWM del micro hasta llegar a 15V y marcamos esa como la frecuencia máxima de PWM para 15V
obviamente los AO deberan ser rail to rail o alimentarlos de +20 a -5. (el circuito no esta acabado del todo, es solo la idea, pero quiero saber si voy bien)
un saludo y a ver que te parece XD