Access view orientation from python?
Looking at the implementation of view3d.viewnumpad in view3d_edit.c, it's just switch-ing over FRONT, BACK, etc. enumerations and setting the view matrix accordingly. The only way I found is through deducing the orientation from view matrix in Python, in the following barebones example using either view_matrix:

import math

def get_view_orientation_from_matrix(view_matrix):
    r = lambda x: round(x, 2)
    view_rot = view_matrix.to_euler()

    orientation_dict = {(0.0, 0.0, 0.0) : 'TOP',
                        (r(math.pi), 0.0, 0.0) : 'BOTTOM',
                        (r(-math.pi/2), 0.0, 0.0) : 'FRONT',
                        (r(math.pi/2), 0.0, r(-math.pi)) : 'BACK',
                        (r(-math.pi/2), r(math.pi/2), 0.0) : 'LEFT',
                        (r(-math.pi/2), r(-math.pi/2), 0.0) : 'RIGHT'}

    return orientation_dict.get(tuple(map(r, view_rot)), 'UNDEFINED')


... or view_rotation as @WChargin suggested, seeing that it's normalized as stated in API docs:

def get_view_orientation_from_quaternion(view_quat):
    r = lambda x: round(x, 3)
    view_rot = view_quat.to_euler()

    orientation_dict = {(0.0, 0.0, 0.0) : 'TOP',
                        (r(math.pi), 0.0, 0.0) : 'BOTTOM',
                        (r(math.pi/2), 0.0, 0.0) : 'FRONT',
                        (r(math.pi/2), 0.0, r(math.pi)) : 'BACK',
                        (r(math.pi/2), 0.0, r(-math.pi/2)) : 'LEFT',
                        (r(math.pi/2), 0.0, r(math.pi/2)) : 'RIGHT'}

    return orientation_dict.get(tuple(map(r, view_rot)), 'UNDEFINED')


It currently ignores perspective/orthogonal and camera view, but that can be easily deduced from the region's other variables.