Is nested view a good database design?
Regardless of platform, the following remarks apply.

(-) Nested views:


are harder to understand and debug 

e.g. What table column does this view column refer to? Lemme dig through 4 levels of view definitions...
make it harder for the query optimizer to come up with the most efficient query plan 

See this, this, this, and this for anecdotal evidence. Compare to this, which shows that the optimizer is often smart enough to correctly unpack nested views and select an optimal plan, but not without a compilation cost.

You can measure the performance cost by comparing the view query to an equivalent one written against the base tables.


(+) On the other hand, nested views let you:


centralize and reuse aggregations or business rules
abstract away your underlying structure (say, from other database developers)


I've found that they are rarely necessary. 



In your example you are using nested views to centralize and reuse certain business definitions (e.g. "What is an eligible student?"). This is a valid use for nested views. If you are maintaining or tuning this database, weigh the cost of keeping them against that of removing them.


Keep: By keeping the nested views you incur the advantages and disadvantages enumerated above.
Remove: To remove the nested views:


You need to replace all occurrences of the views with their base queries.
You must remember to update all relevant queries if your definition of eligible student/teacher/school changes, as opposed to just updating the relevant view definition.