Why can’t a free electron absorb a photon of energy completely?
A free electron ?
Well, because a free electron does not have the required (discrete)energy levels to absorb a photon. Besides, a photon is never absorbed by an electron but by an entire atom. In such an atom, electrons interact with each other and the atomic nucleus. It are those interactions that give rise to the well known discrete electronic energy levels.