Второй блок кода предохраняет от проблем обфускации кода при его минификации, например. Т.е. когда названия переменных изменяются Ангуляр, все равно будет правильно прозводить injection и определять, что первая переменная - это все-таки $http сервис, а не что-то другое. Ниже привожу пример до и после обфускации:
someApp.controller('someController', ['$http', function($http){
$http.get().then(function(response){
$scope.name = response.name;
});
}]);
someApp.controller('someController', ['$http', function(b){
b.get().then(function(a){
s.name = a.name;
});
}]);