Context: I\'m a beginner programmer, self taught in the hope of making a SPA. I\'ve started with JavaScript, Jquery, PHP and MySQL, and now feel pretty confident with all. I
The design of a architecture separated in layers like frontend, backend (Rest Api) and DB, is for obtain a better a scalability, reusability and logic separator of features of the application. For example:
Today make a web applications separated in 3 layer (frontend, backend, and databases), if tomorrow you wanna do a mobile application you can develop the application like a extra project in the frontend layer, but use all the features developed in backend. Then the frontend application not need servers why run inside every device, but maybe the load in the backend servers increase, and you only need add 1 more server in the backend layer.
Its a little example, but is the most common case in this new era of mobile applications.
Remember always this in MVC architectures:
Frontend: Always call services from the backend, render the view, and capture data. Sometimes make a litle logic.
Backend: Receive the request, apply all the business logic, read and write operations in databases, and return a response preferred in json format.
Model: store data, backups, slaves, etc.
PD: If you use meteor in this example you gonna need to make a api Rest to develop the mobile application.