I think, especially in programming language communities, that there tends to be a preference towards making a static language for their compile time guarantees, and this is a pretty concrete counterargument as to why people find dynamic languages “easier to program in”
I agree with your second point but not the first, because presumably the code processing user input has a better idea of what to do if the input is invalid because it is an empty list then some other random part of your program that requires a non-empty list but finds out that it has been given an empty list instead.