Yes, code re-use is a good thing up to a point. But putting logic into views can actually make it more difficult to debug the objects that call them. I had to modify a system once that had no less than six levels of views callling views, and it was an absolutle nightmare.
As a practical matter, I do not use views for this purpose. On occasion I have created user-defined functions for commonly used code.
If it's not practically useful, then it's practically useless.
I like views for producing a virtual table that represents some application of business logic on the database. You do, however, need to be careful with them. Since this is not a vendor specific forum I can't speak for all rdbms' (not that I can anyway) but you certainly don't want the nested view problem blindman mentions nor the inefficiency of the one-huge-flattened-database-view that you use for everything irrespective of whether or not you use all 180 joined tables (an exaggeration but I'm sure you get the point).