Useful suggestions. What would be best, of course, would be if the pop-up menu only contained the acceptable page type(s) for the page in question. In the CMS, if I have the News page selected, the page type pop-up is automatically set to ArticlePage, which is what I have as $default_child in ArticleHolder.php. But a user could still select a different type, but there is no good reason why those other types should be present in the pop-up at all. Is there some way of determining what appears in the pop-up?
This kind of control would be really useful if a SilverStripe system needed to be administered by non-techie users (which is half of the point of a CMS, after all). As it is, I fear a lot of damage could easily be done.
You're absolutely right. Maybe you could create a ticket (enhancement request) here: http://open.silverstripe.org/
To add to your statement: If you add something like this to your ArticleHolder.php
public static $allowed_children = array('ArticlePage');