Бритва Оккама - знакомо? Вот, ArrayCollection это и есть лишная сущность. Т.е. Array сериализуется безо всяких дополнительных усилий. А ArrayCollection - непонятно зачем, но тоже сериализуется в то же самое.
По поводу Boolean - я прав

Никому кроме Java програмистов не нужен Boolean у которого есть 3 возможных значения. Если нужно три разных значения - есть энумераторы, вот их и используйте, а логические величины не могут и не должны быть nullable. То, что в AS3 Boolean ведет себя как положено - не "недоработка", это в Яве от большого ума и стремления сделать все одинаково не задумываясь о последсвиях. Проблема в Яве, как и в похожих языках в том, что из функции надо возвращать одно значение, и нельзя вернуть несколько разных. В C# решается проще и красивше - можно в функцию передать параметр по ссылке (ref / out). А в Яве либо бросать искючение (затратно), либо вот такой вот маразм с Integer, Boolean и т.п. Есть и другие варианты решения, например в HaXe можно описать такую ситуацию как function foo():Null<Int> и она будет возвращать либо null либо число. Ява старый язык, который давно уже не развивается, попытки с ним что-то то сделать выглядят просто неуклюже, да и не интересно это уже никому... Какое-то время Ява была "образцом ООП", но времена поменялись, ООП в таком виде, как он в Яве уже никому не интересен т.как обнаружилось много недостатков, которые уже никак не исправить - вот Boolean - один из них.
Но я больше не буду про Яву, - я действительно ее не перевариваю.