Can valid transaction be not accepted in the beginning, so it will not make into pending pool?
You can run any kind of node you want. Most likely your node would not reject such a thing and would broadcast to it others. Most likely they would proceed on the assumption that others know about it as well so there is little to be gained from active interference. However, there is no guarantee that any miner anywhere will include it in a block.
Can it expire once it in the pending pool? (without any other actions from the same address)
Yes. In particular, if the
gasPrice is too low and it doesn't get included in a block for a long time and then is crowded out by newer transactions. No one is under any obligation to hold a queue and some nodes discard the pending queue on restart.
Is there guarantee that transaction will be eventually executed(assuming there's no infinite amount of transactions with higher gas price)?
No. It can be forgotten.
There are further complications that are particularly troublesome for nodes that wish to send high volumes of transactions. Users and developers run into these issues when they erroneously send a transadction with a low
There is also no guarantee that a transaction has been forgotten. It still "might" happen.
Transactions from the same address are guaranteed to mine in
nonce order. So, if one goes missing (say, because the gasPrice was too low), the subsequent transactions are blocked.
Reliably resolving such a situation to remove all doubt would be a topic for another post. It's a handy thing to know, and vital if working with high transaction throughput s one can script an automated resolution and carry on.
Hope it helps.