Because you made it a variable!
This one confused me for a minute too. Your locals are defined correctly. You reference it correctly. So why is terraform prompting for it? Just because you define it as a variable.
Since you're not using var.certificate_arn anywhere, defining it is a variable is not needed. But since you did define it as a variable, ...
Yes. According to Types and Values: Lists/Tuples
List literals can be split into multiple lines for readability, but always require a comma between values. A comma after the final value is allowed, but not required. Values in a list can be arbitrary expressions.
Terraform by HashiCorp. (n.d.). Types and Values - Configuration Language. [online] ...