Is there any difference between these two Leap.Gesture.GestureType values? If there isn't any, then why they are written twice?
No, there is no real difference. The versions without the underscores violated the API naming conventions and are deprecated. They haven't been removed so that older code that uses them will still compile. You should use the versions with the underscore in the name.