Most likely because you change the string after the split. You trim the values after splitting them, RemoveEmptyEntries doesn’t consider the string " " empty.
The following would achieve what you want, basically creating your own strip empty elements:
var tagsSplit = tags.Split(',').
Select(tag => tag.Trim()).
Where( tag => !string.IsNullOrEmpty(tag));