Instantiation is overrated IMO. I like the notion of “summoning”. You can summon Foo.default or 42 or “foo” without appeal to instantiation; for an indentity class, new Foo() summons a guaranteed-unique entity; for a value class, new Foo() summons a value that you may or may not have seen before.
I do think "instantiate" often carries a connotation of bringing something into existence that never existed otherwise, but I'm not sure it *should* have that connotation. Because classes have been identity classes forever, we easily conflate “summon” with “summon new and forever unique instance”, which is largely equivalent to “allocate”. So I think we have to adjust our notion of “instantiation” or whatever we call it to e more like “get me a value; depending on the classes involve, it might be new, it might be old.”
