For the first question (and the 3rd If I'm understanding you correctly), since you're presumably rooted, a simple method for getting a look at things would be to install busybox (if you haven't already) and a terminal emulator and use the du utility.
For example, if I want to look at how much space each app's own data is taking up, I would use du -d 1 -h /data/data, which gives me the contents of /data/data (where all the apps' data is stored) to 1 level deep (just the directories directly below /data/data, which are all named after the apps' package names) and give me the sizes in human readable format (Kilobytes, megabytes, etc.). This will tell you exactly how much data every app on your device is storing. You can point this wherever you like. For the 3rd question, you'd simply point it at wherever Link2SD mounts its storage.
For persistent storage, just look at /data/app, which is where the apks themselves are stored.
For further info on the usage of du, refer to the busybox manual.