In the preceding code, count is empty.
That is correct, the default value for that propery is the 0-by-0 empty double array  as stated in the "Property Default Values" section of this documentation page.
calling increment() has no effect on incrementing count
That is also correct.
The 1 is scalar "expanded" to be a 0-by-0 and a 0-by-0 plus a 0-by-0 results in a 0-by-0.
Any suggestions why I need to explicitly initialize properties?
Because you don't want the default value for that property to be empty in this case.
By the way, despite you mentioning "handle class" in the subject of this post, this behavior holds for value classes as well.