My first standalone project - chceck correctness please

The pull-up resistor (whether in the chip or external) limits the charging of the capacitor, but not the discharge, so it is asymmetric. You can put a resistor in series with the switch of a value less than a tenth of the pull-up value which will limit the impulse when the switch is closed - this will still be asymmetric - or if you have an external pull-up, you can put a resistor between the switch plus pull-up and the capacitor plus input line greater than ten times the pull-up which gives you fairly symmetric charge and discharge.

You do get a plausible debounce with a capacitor only because the chip input is a Schmitt trigger - if it was not, it would still be possible for the capacitor voltage to fluctuate with the bounce waveform, across the threshold voltage. The necessary penalty is requiring a quite long time constant to ensure the correct behaviour.

I am not sure why you would be using a rotary encoder triggering an ISR - this (use of an ISR) suggests to me that you are monitoring a high-speed device generating some kilohertz, and I would expect such an encoder to have inherent debouncing by hysteresis in its optical system.

I am thinking in terms of manual input devices such as pushbuttons, keyboards and manual rotary encoders where the debounce is performed in the one millisecond supervisory cycle using three memory variables: "prev_state", "last_state" and "count" and the key array is read as "now_state". On each cycle, if now_state differs from last_state, the count is set to the delay value - such as 20 - and last_state is set to now_state. If now_state == last_state and last_state differs from prev_state, then the count is decremented and if it reaches zero, then the (combined, as it is an array) difference between last_state and prev_state is acted upon, prev_state is set to last_state and the count is reset to the delay value.

Such code is quite compact (particularly as you can debounce eight inputs simultaneously with ease - you do not expect more than one or two manual inputs to occur simultaneously anyway), and performed in a non-time-critical fashion at the millisecond cycle rate which is obviously where I was expecting the OP to be using it.