It’s not really a bug, no 🙂
Dynamic variables can be quite prone to errors (since they rely entirely on string naming), thus they are red (in edit mode) so that they are clearly visible when they are used. Behind the scenes the color red is used when a parameter is missing a linked variable and in the case of dynamic variables this is exactly what is actually going on (since the variable is created and linked to the parameter only in runtime) 🙂