To understand hierachical post type you have to think to the first hierachical post type in WordPress: pages. Before WordPress 3 there was no custom post types at all, there was only post (not hierachical) and pages (hierachical).
Building a company site you can have a page 'About Us'. Then you can have some pages 'Our Location', 'Our Staff' and so on. these pages can be children of 'About Us' page.
Doing so you can do 2 things:
- Using function like
wp_list_pages
these pages are shown in nested lists, in this way everything appear more organized - The url for a child page became
http://www.example.com/about-us/our-location/
giving to site a tree organization that is a good for seo.
Note that custom menu in WordPress appear with WP 3.0 and befor this version only way to display a list of pages is using functions like wp_list_pages
so first point was more important in the past than now, but second point is still important in these days.
In short general scope of hierachical post types is to put in parent post some informations and in child posts details that can be organized in a tree-like scheme.
The reason why a post type cannot be a parent for another post type is mainly storical and regard the way the parent-child relationship is handled in WordPress.
To relate one post type to another, there are some ways.
The first, is create a taxonomy shared between post types, in this way you can create a relation of the type many-to-many.
The second is create a custom field in a post to link the other post type.
E.g. in your case in a post of Places
type, you can create a custom field called 'neighborhood_id' and there put the id of the 'Neighborhood' post you want to use as parent.
This will create a relation one-to-many.
Another, commonly used, way is use the Posts To Posts plugin (aka P2P) that allow you to create relation between post types, using one-to-one, one-to-many and many-to-many relation type.
It's a well known plugin, developed by scribu one of WP core developers (and user of this siteuser of this site).