A bit more specifically on GitHub's design choices... The estimate field is an arbitrary integer value without a unit for two reasons:
Since it is notoriously hard to estimate time to complete software projects, the idea is to first estimate relative effort in some arbitrary unit (story points) and then get a sense of the team's velocity empirically. So after a few sprints, you have a sense of how many story points you can expect to clear in the next iteration, and these total estimates that GitHub shows in various views can be helpful to plan iterations.