the problem with negative angles is that you need to define a direction for them. if you have two points spread in 3d space and want to determine an angle from the origin which one should be marked the negative one? unity cant know that and would require an additional orientation information (your intended upvector for example) and additional computing time. so this solution is enough for most cases and if you need this additional information just make your own function with the hint in the link above.