To be honest, the reason I don't want to use citext and lower(), is me being lazy. If I have to use these features, there is more work for me converting from SQL Server to Postgresql. I have to make more changes to my database, and more to my software.
But, developers are generally lazy, so you could argue that this reason is "compelling".
The other reason, is that I assume that "lower()" adds overhead, so makes things slower than they need to be.
Whether that is true, and if that is a compelling reason, I don't know.