As far as I know, cstring is just a pointer to the char's array. The inner representation of the string type contains such kind of array, so the converter just passed the array pointer from the inner representation without any nil-checks to your test procedure.
Probably the converter should perform the nil-checks to avoid problems while calling C code.