Can Django template variables be model instances?
The issue isn't that the variables are static copies. It's just that the template language itself doesn't allow you to call methods which take arguments. It's still the same object under the hood you're accessing, you just have no way to express certain programmatic concepts (assignment, passing arguments, etc.) in the language.
To answer your update:
Yes the template layer could update models if the model had a method which modified the object and that method didn't take any arguments. But just because you can do a thing doesn't mean you should do a thing. Don't assume that because the developers of Django haven't absolutely prevented something means it's totally acceptable, but if that's what you really want to do, there's nothing to stop you.
I was asked this on an interview presumably to see if I understood the separation between the Template layer and the Model layer.
My understanding is that template variables are essentially:

A static copy of the instance (such that all the properties can be accessed)
An instance that has all of the method with arguments "hidden" (such that they can't be called, but methods without arguments can be called )

Therefore, if you had a model with only methods with no arguments and passed an instance into a template could you say that it was a static copy of the instance? Is this even a correct way to think about template variables?
UPDATE:
Is the template (view) layer able to update models (e.g. from a custom context processor)? If no, then how is this prevented by the Django framework if it's not making copies of the model instance? If yes, then wouldn't this be a major deviation from typical web framework MVC design where data only flows in one direction from Model to View?