deployment is about the code getting compiled and deploying the updated software, it is not about the content in the database.
I do not recommend developing on production. Creating and editing site data is done from the UI it is not a development task.
The production database is the authoritative copy of the database so when you want to do local development you should get a copy of the production database and use it on your local machine but in general you should not copy the database from development environment back to production. Some people do create content locally when they are first creating a site and then they move it to production and restore the db from their dev environment to production but I don't really recommend that approach and don't usually work that way myself. You could get away with it for a new site but once users start using your site and data is coming in from the production side, ie users register on the site, post in the forums, make comments on your blog posts or purchase products from webstore. Once any data like that comes into the site from production then you can no longer restore a db from dev to production without losing the data that was in production. But you can always deploy newer builds of the software to production, and that is what packaging and deployment is about.
packaging and deploying locally to a folder is designed to get a package of just the needed files, dlls, .aspx, ,ascx and most other files but not .cs source code files and not junk files from your dev environment, not the user.config from your dev environment. It is basically the same process I go through in packaging the official releases. It produces a package that can be used for upgrading or for a new installation. After deploying the updated files to production or staging or any other environment you would visit the /Setup/default.aspx page to run any upgrade scripts.
Hope that helps,
Joe