Via vectors its simple to force recoil from any direction to an object as a change in velocity vector. Imbalanced recoil would be trickier but doable (MOI) as it would (like it realistically does) generate torque and rotation.
its math i had to figure out for my atmospheric flight model. i was going to do summation of forces from multiple sections of the airframe, of course i never got around to implementing the other stuff it would require, so i never did it. i did however do a test with a drag vector to see if the aircraft would turn itself into the wind, it worked for the most part, but i hadnt got to control surfaces yet and it was completely uncontrolable.
F = force vector, P = point where force is applied in relation to the ship's center of mass, T = net torque, V = (change in) angular velocity, n = number of forces, M = inverse! moi matrix
T = ((F1 X P1) + (F2 X P2) + (F3 X P3) + .... (Fn X Pn))
not sure if this is the right order but you do something like
V = T * M
then you just add V to the angular velocity of the ship, the physics code should apply caps for you to prevent the game from screwing up.