I'll try to answer what I can:
0) Is it necessary to run a node if i want to have a wallet? Is it necessarily attached to some exact node or i can keep my wallet on flash drive for example and use it with any node? Where and in which form my account balance is stored?
You either have to run a node or trust somebody else (like MyBitcoin.com) to keep a wallet for you.
Your account balance is stored in a Berkeley DB file called 'wallet.dat' (what directory depends on your operating system; on my Mac it is ~/Library/Application Support/Bitcoin/wallet.dat, on linux it is ~/.bitcoin/wallet.dat, not sure about PCs).
The only application that can read wallet.dat is the bitcoin code, and the database structure isn't documented anywhere besides the bitcoin C++ source code.
1) Do i need to download whole network transactions log to be able to validate received coins?
Theoretically, no, but the code to do lightweight validation hasn't been written.
2) How user protected from potential situation when some node is hacked(or modified) and using his id (public key) to send money from his account? It looks possible when everything is sychronyzed between everybody.
Satoshi is planning on encrypting the wallet database, so you'd need to enter a password to read it. (and they need to get your private keys to generate transactions-- those are what are stored in the wallet.dat)
3) Which data exactly passed between 2 nodes during transaction? (or just show me place in source code where to look)
4) Can somebody please write more details about transaction fee: why is it needed, how and in which cases it's used and so on.
Dunno.
5) Is there any any plans on decentralizing node list (i have figured out from irc that bitcoin is currently not really decentralized, because nodes getting in touch by joining irc channel on freenode).
There's another thread about this in these forums; maybe we should start a "Satoshi's TODO list" thread and get folks to volunteer to help out.
6) Do i correctly understand that after some point in time nobody will have ability to generate new coins? we'll just use fixed amount of existing ones.
Fewer and fewer coins will be created over the next N years (where N is-- what, 20?). That's a feature, not a bug...
RE: developing your own version: are you thinking of creating a second bitcoin implementation that is compatible with the existing C++ one (good idea, in my opinion)? Or creating a similar-but-not-the-same system (bad idea, in my opinion)?