I do not know why this happens, but we have discovered it the hard way, when a logic that had always worked in inbound call flows started to give errors in message flows....
Still, a null value is different than an empty string. There can be cases where that difference could matter. Also, having different behaviors in voice and text flows is highly inconsistent, making things less reusable.