Well, I wouldn't necessarily say that's the "web2py way". I just like to keep the logic in my views minimal. For example, the virtual fields are actually in the models which is also a good place to prepare your data.
One reason to limit logic in views is if you ever have graphic designers working on your views which is common in larger projects. Some people like to have their code generate all of the HTML. I tend to prefer making it look like HTML with limited substitutions via code.

