from http://linux-ip.net/html/tools-ip-address.html :
Scope | Description
global | valid everywhere
site | valid only within this site (IPv6)
link | valid only on this device
host | valid only inside this host (machine)
Scope is normally determined by the ip utility without explicit use on the command line. (...)
The following citations are from the book Understanding Linux network internals
by Christian Benvenuti, O'Reilly:
"The scope of a route in Linux is an indicator of the distance to the destination network. The scope of an IP address is an indicator of how far from the local host the address is known, which, to some extent also tells you how far the owner of that address is from the local host (...).
Host: An address has a host scope when it is used only to communicate within the host itself. Outside the host this address is not known and can not be used. An Example is the loopback address, 127.0.0.1
Link: An address has a link scope when it is meaningful and can be used only within a LAN. An example is a subnet's broadcast address.
Global: An address has global scope when it can be used anywhere. This is the default scope for most addresses. (...)"
The main reason to use scopes seems to be that a host with multiple interfaces and addresses has to decide when to use which address. For communication with itself a loopback address (scope host) can be used. With communication elswhere, a different address has to be selected.