Yes, you could also compute the angle difference between the side vectors as well. Here is a modified version of the sample code that also returns the difference between the side vectors:
	Code:
	import viz
viz.go()
euler1 = [0,0,0]
euler2 = [0,90,30]
def ComputeAngleDifference(euler1, euler2):
	m = viz.Transform()
	
	#Extract forward/up/side vector from euler1
	m.setRot( vizmat.EulerToAxisAngle(euler1) )
	d = m.get()
	forward1 = d[8:11]
	up1 = d[4:7]
	side1 = d[:3]
	
	#Extract forward/up/side vector from euler2
	m.setRot( vizmat.EulerToAxisAngle(euler2) )
	d = m.get()
	forward2 = d[8:11]
	up2 = d[4:7]
	side2 = d[:3]
	#Compute angle difference between forward/up/side vectors
	forward_diff = vizmat.AngleBetweenVector(forward1,forward2)
	up_diff = vizmat.AngleBetweenVector(up1,up2)
	side_diff = vizmat.AngleBetweenVector(side1,side2)
	return forward_diff,up_diff,side_diff
	
print ComputeAngleDifference(euler1,euler2)
 
	Quote:
	
	
		| Alternatively, wouldn't a unique solution also result if I calculated the displacement from the facing direction AND the angle of rotation about that axis (the facing direction)? | 
	
 Yes, this should provide a unique solution as well. I'll write up a sample script that does this and post it shortly.