Empiezo diciendo que voy a seguir usando los términos en ingles. Vivo en gringolandia EEUU, trabajo aqui y aprendo aqui. Hay términos que me toma tiempo asociar en español, ambito con scope por ejemplo. No tomen mi uso de términos en ingles como una imposición cultural u otra idea rara, sino mas bien una manera de mantener precision de lo que digo.
No muchacho, usted está confundido. Framework viene de algo más general que al español se podría traducir como "Entorno de trabajo" o más literalmente "marco de trabajo". Un ejemplo sencillo: el .NET Framework, es un conjunto de bibliotecas, que te dan un montón de herramientas para trabajar tus aplicaciones. Un Framework NO NECESARIAMENTE te dice como tu aplicación tiene que estar estructurada. Si bien el Visual Studio te fuerza a seguir cierta convención (separando el código de la página del código de aplicación) no es ley que vos tengas que seguir la arquitectura MVC por ejemplo.
Tu confusión debe de originarse debido a que has utilizado varios Frameworks que se basan en "convención sobre configuración" como RoR o CakePHP donde ya existe una convención de la arquitectura a utilizar para construir tu aplicación.
mx, siempre me ha llamado la atención la certeza con la que saltas a decir que alguien se equivoca y nitpick ciertos detalles y hacer a hell lot of assumptions. No voy a responder todos tus puntos, algunos los estas trayendo como si solo quisieras mostrar que andas en la jugada.
Por ejemplo, empezas diciendo que un framework se podría traducir como un entorno de trabajo, lo cual suena bastante a lo que un IDE hace y ocupas a visual studio como ejemplo, nota como si yo siguiera tu estilo de comunicación, I'd nitpick este detalle y te diria
"marachito, estas confundido [blah blah historia no tan necesaria]... " y terminaria haciendo un assine comment sobre como visual studio rots the mind. Sin embargo IMHO tales maniobras no son necesarias.
Obviamente existen Frameworks que no te dan un esqueleto como CakePHP. Realmente Framework es nombre genérico que se le da a una serie de bibliotecas que te ayudan a desarollar aplicaciones como mencionó g00mba arriba. Alguien podría decir que las bibliotecas de java también son un framework y no estaría demasiado equivocado.
Tal vez sería más correcto decir que un Framework puede ser un conjunto de bibliotecas distribuidas como un conjunto más que de manera individual.
Esa idea de framework es bastante simplista y el decir que CakePHP no te da el esqueleto suena naive. Lee mi post otra ves, y vas a encontrar esto
"pero la característica a notar es que esta capa oculta y controla el flujo de ejecución." La palabra clave es flujo de ejecución. Hay frases bien simplistas que ayudan a entender la diferencia entre framework y libreria, la que mas me gusta es una llamada the Hollywood Principle "Don't call us, we call you", lo cual ejemplificaría como las capas de abstracción proveídas por el framework proveen patrones que controlan el comportamiento de tu aplicación. En otras palabras "you call a library, a framework calls you."