I want to say, and maybe I’m mistaken, that the Add and Append functions work a bit like the Increment Int functions, in that they’re taking the input array to act on by reference; you can’t have a valid reference to a Make Literal because it isn’t a variable of any kind, it’s just a value. The act of feeding a Make Literal to any function input is akin to simply explicitly defining a series of values in array format for that input, it isn’t actually any kind of “array” that is pointed to in memory, so you can’t do further operations on it.
As to whether it’s “by design”, Blueprints just don’t distinguish between input validities when it comes to pass-by-ref or copy. If you hook up a Make Literal Int to an Increment Int, it will accept that input, and then proceed to not work. The issue is the engine doesn’t seem to be declaring “this array input is By Ref”, which may be a limitation of Blueprint, IDK.