You aren’t the first to be confused here. I think the confusion comes from a single behavior in Hugo.
If content type is not specified, the section name will be used as the content type.
This behavior comes from how people generally organize their content.
A section is the first directory under root. In your case it is “post”… we will call this postSection for clarification.
A type is assigned via the front matter. It’s entirely possible for a given section to have content of different types in it. For convenience purposes if a type isn’t defined it will take the section name as type… In this case “post”. We will call it postType for clarification.
For any given type Hugo looks in /layouts/TYPENAME/single.html to render it.
Additional views of that type can also be placed in that directory, for instance a summary view would be /layouts/TYPENAME/summary.html
When Hugo is called to render a section it looks for /layouts/section/SECTIONNAME.html .
While I did consider having Hugo look at TYPENAME/list.html, after some thought it was apparent to me that this would be even more confusing. Why would a type list need to handle content of other types. By keeping the layout for a section in /layouts/section it kept this separation which reinforced the idea that a section can contain many types.
I hope this clarifies things.