... Essentially, in the case you gave, you are attempting to write your own null to save memory and keystrokes, ...
For the description in post #1, I don't think that's so.
As I understand the description, he's basically comparing two cases:
1. A variable that can hold null or an array.
2. A variable that always holds an array, but the array can be empty (0 elements).
I further assume that a null in the variable is equivalent to an empty array, i.e. they both represent the "0 elements" state.
To be honest, I think #2 is simpler and clearer. That's the one he wants to use, too.
The code in #2 never has to check whether the variable is null, and never has to create an array on the fly to assign to the variable. It only has to deal with an empty array (0 elements). Adding null handling costs extra, since it means the same thing as a non-null but empty array. Why have two states that mean the same thing, unless there's a significant benefit?
There may be a memory cost for maintaining a 0-element array, but we don't know what that cost is (yet). Indeed, that's the question to consider. That cost may differ depending on how the array got to 0 elements. That is, a newly created array of 0 length may have a different memory footprint than an array that previously contained 10,000 elements and was then emptied (new vs. residual).
Maybe I'm missing something about how the array variable is expected to be used, but I'd rather maintain code where there are fewer states, with no overlap in the meaning (semantics) of those states.