IP addresses are explicitly not designed to be bound by hardware where as MAC addresses are. MAC addresses can be changed temporarily most of the time but each device is supposed to have a globally unique factory assigned MAC address.
Furthermore, MAC is specific to Ethernet, and while it is now the defacto Layer 2 encapsulation method, it wasn't always the case and you never know if something better will come along in the future.
As you already suspected it's answer 4 that's not correct. To see this it might be best to write the addresses down in binary notation.
The address range you have been given (90.103.80/21) comes down to:
01011010 01101111 01010xxx.xxxxxxxx
--------.--------.-----xxx.xxxxxxxx
with "x"es marking the part that you are free to assign any combination of "0" and "1" to.
Taking 3 additional bits as the network part you're left with the following:
01011010 01101111 01010nnn.hhhhhhhh
--------.--------.-----xxx.xxxxxxxx
With "n" marking the bits used for the network part and "h" marking the bits used for the host part.
Your networks will be thus using the combinations "000" "001" "010" "011" "100" "101" "110" and "111" to substitute the "nnn" part. Leaving (without network and broadcast adress) 254 hosts on each network with addresses distributed as follows:
01011010 01101111 01010nnn.hhhhhhhh
-- 1st network --------------------
000.00000000 network 90.103.80.0
000.00000001 1st host 90.103.80.1
... ...
000.11111110 last host 90.103.80.254
000.11111111 broadcast 90.103.80.255
-- 2nd network --------------------
001.00000000 network 90.103.81.0
...
001.11111111 broadcast 90.103.81.255
-----------------------------------
.....
-- 8th network --------------------
...
111.11111111 broadcast 90.103.87.255
Best Answer
According to RFC 5735:
So, looking at RFC 1122:
So @Spiff is right, they're used exclusively in initialization procedures before obtaining the "real" IP Address.
But later on RFC 1122 states that:
so BSDs version 4.2 actually send broadcasts to
0.0.0.0
.Update:
Found another piece of info:
And here appears BSD again: