Is it possible to use local and nonlocal forces simultaneously using bge?
You can do multiple applyForce() calls per frame, some local, some global and blender works everything out - summing them together to apply a correct total amount of force in the correct direction.

Example:

obj = cont.owner
obj.applyForce([0, 0, -9.8], False)  # Global gravity
obj.applyForce([0, 10, 0], True) # Accelearte locally


Or you can do the coordinate conversions manually using the worldOrientation matrix.