Does node_save create all fields associated with a custom content type automatically?
You can happily omit the empty ones, there's no problem. When consulting the newly created node, node_load() will retrieve all the attached field and build the correct object.