1) Old school retro games had 8x8 tiles or 16x16 tiles usually. In Super Mario Bros. 3 they were actually... 32x16? Maybe 24x16, can't remember now. Your best bet would be to follow that practice, so that you use less disk space. You can resize the sprites manually if you want, but I'd say just set the "Fullscreen in Browser" option to "scale" or maybe "letterbox scale". Also make sure to set the "Sampling" to "Point." These options can be found by clicking on the root project folder in the Projects tab.
2) Graphics. I believe Ashley actually went in depth explaining how you don't need to waste too much time trying to optimize your events, it's in one of the blog posts of yonder I think. The less space you can use with your graphics, the better.
3) I use only 1 or 2 event sheets for Happiness, and it runs fine. However, it might be better practice to utilize several event sheets more for organizational purposes. That said, events run from top to bottom in order so you'll want to be careful in that regard. Every event in the included Event Sheet 1 is going to run before every event in the included Event Sheet 2 which is going to run before every event in the layout's event sheet.
4) Multiplayer is tricky. There are a whole lot of ways you can go about this. It will definitely be easier to do a local multiplayer than online, but it's all relative. You'll want to keep in mind which player the camera follows, how the screen splits up, how you maintain 2 viewports or 1, etc... and those are just technical mechanics. Not even talking about gameplay stuff.
5) Array, JSON, Webstorage. Also the latest beta has Save/Load States. Probably some bugs with it, but that's why they call it beta. Not very difficult anymore no matter how you slice it though. You just need to understand how arrays work for the most part, and how to save arrays as JSON strings to web storage.
6) Create a separate sprite, a square one. You'll put it's visibility to invisible. You'll set up image points in your animations, and when you want a hit box just set up your events to spawn the hitbox sprite on that object's imagepoint.
7) Not entirely necessary anymore really, but still useful in some scenarios. You can actually easily set collision boxes in the sprite animations. However, for multiple player characters or for RPG games where you need multiple collisions per character, having separate bounding boxes can be very helpful.
I would highly suggest you don't do this as your first project. Start off small. Do some of the tutorials. I tried to do a full blown action RPG with a large world and I had this grand scope I was trying to accomplish... and I had no clue how to do it so nothing got done. After that, I decided to create Happiness as a small game to learn how to use Construct 2. I also made quick little tech demos, recreating some mechanics from Mario games and other things. I also got very familiar with a lot of array and database stuff and learned how to go with an Object Oriented and Class based approach for everything from music to characters to level design and inventories and so on and so forth...
The other reason to start small is so that you can actually finish a game. I'm not saying it has to be a quick arcade style game, but maybe a 10 stage platformer. Something simple.
There are a lot of good tutorials around here to help you learn as well. I highly advise taking advantage of them.
Anyway, hope at least some of that helped. Any other members feel free to correct me. Good luck in your endeavors! And welcome to the community!