In sitecore documentation it says "If you do not create a placeholder settings item, you will still be able to bind components to placeholders using the Presentation Details dialog. ".
So why would anyone want a placeholder settings?
Placeholder Settings are used if you want to restrict someone to add renderings on a specific part of a page on Experience Editor.
For example, let's say your page layout
homepage is divided into 3 sections:
Above Page Content
Below Page Content
<div class="header"> @Html.Sitecore().Placeholder("Above Page Content") </div> <div class="body"> @Html.Sitecore().Placeholder("Page Content") </div> <div class="footer"> @Html.Sitecore().Placeholder("Below Page Content") </div>
For example, you have "Sign In/Registration" rendering and you want the assembler setting up the site to be able to add this rendering only in the header.
You can create a placeholder setting for each placeholder and make sure you have the rendering "Sign In/Registration" is selected only for the
Above Page Content placeholder settings in the
Allowed Controls field.
Now when the assembler opens the page with the layout
homepage on experience editor, he will have the 3 placeholder, and on clicking the
Add Here command for the placeholder
Above Page Content, he will be able to add only the components you specified previously.
Placeholder settings are used for Experience Editor.
For a non technical guy which doesn't know very well your solution is almost impossible to know on which placeholder should add every component of your site.
Sitecore is used this years for enterprise solution.
For example if you have more than 50 components per site,10 sites is very difficult to know every component on which placeholder to add it.
Using Placeholder Settings is very easy to add components in the right place using Experience Editor.
Please have a look on below picture and imagine how difficult is to remember all placeholders to add components :) .