1
Yes, in short - but you'll be able to change your mind later on
The typical directory structure for a subversion project is:
project/branches
project/trunk
project/tags
You'd initially put all of your code in trunk and then create tags and branches later when necessary.
You might want to consider keeping everything together in one svn project folder structure initially because it will be simpler (you won't have to mess around with the solution file).
If you choose to make break parts of the projects into separate svn projects in their own right later on, you could do an 'svn rename' and create the standard branches, trunk and tags folders for them. You'd just need to modify the references in the solution file or use the svn:externals approach.
2
Absolutely - you should store everything in the repository that isn't generated by a build. Create svn:ignore attributes on generated folders (such as the obj and bin directories) so 'svn status' will give you useful feedback when you've forgotten to add an important file.
3
There is a mechanism svn:externals that enables you to create a link to another place in a subversion repository (or an external subversion repository) - that might help you to be able to check out from a single folder. You might want to consider making the svn:external reference to a specific tag of the framework so that other people's changes to the framework don't break your project.
svn:externals can make things pretty confusing however so use with caution.
4
You can check out at any level in the folder hierarchy in subversion