Все правильно, но ведь есть у JSON`a и плюсы!
JSON может быть читабельным - его же тоже можно форматировать. Пример с вики

Код AS3:
#JSON
{
"firstName": "Иван",
"lastName": "Иванов",
"address": {
"streetAddress": "Московское ш., 101, кв.101",
"city": "Ленинград",
"postalCode": 101101
},
"phoneNumbers": [
"812 123-1234",
"916 123-4567"
]
}

Код AS3:
#XML
<person>
<firstName>Иван</firstName>
<lastName>Иванов</lastName>
<address>
<streetAddress>Московское ш., 101, кв.101</streetAddress>
<city>Ленинград</city>
<postalCode>101101</postalCode>
</address>
<phoneNumbers>
<phoneNumber>812 123-1234</phoneNumber>
<phoneNumber>916 123-4567</phoneNumber>
</phoneNumbers>
</person>

Код AS3:
XML
<person firstName="Иван" lastName="Иванов">
<address streetAddress="Московское ш., 101, кв.101" city="Ленинград" postalCode="101101" />
<phoneNumbers>
<phoneNumber>812 123-1234</phoneNumber>
<phoneNumber>916 123-4567</phoneNumber>
</phoneNumbers>
</person>
JSON компактен - если убрать в примерах все пробелы и переводы строк JSON немного выиграет.
по поводу п.5 - необязательно все складывать в объект, можно сложить в массив, аля

Код:
[{"id":1, "type":1}, {"id":2, "type":8}]
на выходе получим массив с объектами.
JSON гибок - мы можем складывать объекты в нужном сложном порядке - например - массив с объектами, в которых лежат массивы с объектами, в которых лежат объекты с массивами, в которых лежат объекты (с массивами).
JSON удобно использовать и генерировать в JS и серверных скриптовых языках - различного рода json_encode (json_decode) позволяют сделать это одной строкой.
Так что иногда его удобно и выгодно применять )