I agree. Modern languages that implement call-by-value usually try to be smart about when (and whether) the arguments are copied. The two links in my blog both point to a Wikipedia page where about a dozen evaluation strategies are discussed and particular languages (Java, Ruby, C, FORTRAN, ...) are mentioned. http://en.wikipedia.org/wiki/Evaluation_strategy