Your argument does make sense for teaching an intro to programming type class, where it may not be obvious what is a function name versus variable name. That just hasn't been my audience for a very long time now when explaining anything. I'd likely also go with var1 var2, fn1 fn2 type names if needing non-descriptive placeholders in that case. I mainly avoid foo and bar because to me it's a tired meme, and people tend to understand "variable names and function names can be anything" well before they ask "why does everyone insist on using foo, bar and baz all the time?" which is just extraneous lore. In my case, I was writing QBasic games many years before I encountered my first foo or bar.