Most of this stuff can be done by site developers - the tutorials cover how to do this:
There are a few points that you mentioned that we are doing some work on:
* We are looking at developing more fine-grained permission control on the DataObjects and have that drive the forms generated.
* We are also looking at automatically adding fields to getCMSFields() when you create $db, $has_one, $has_many, or $many_many entries.
However, a complex data-querying interface is unlikely to ever make its way into the core CMS.
SilverStripe CMS is Designed For Content Authors. Not developers. We really dislike the fact that other CMSes bolt developer-only functionality into the CMS and it gets in the content authors' way. It is much more important to us to have an interface that doesn't stand in the way of authors updating content.
SilverStripe is built on the philosophy that there are a number of different people who come together to make a website: designers, developers, authors. Each of these people already have tools that enjoy using to do their job.
In particular, designers and developers have PHP and HTML/CSS development tools. So, we let them use those to build a SilverStripe site. Not the CMS interface. That is for the authors.
What this means is that a lot of development work on your site needs to be done in template and code files. This is by design.