As you've discovered... Tapestry replaces field access with Binding.get() using plastic byte code magic. You can use a local variable to avoid multiple gets.
Eg: @BindParameter private GridDataSource source; ... GridDataSource sourceCopy = source; doStuff(sourceCopy); doMoreStuff(sourceCopy);