I tried to reproduce the issue with clocks and low speed until miner restart.
Windows 10, latest blockchain drivers, stock RX580 Nitro+.
1. No overclock: If I start miner in ETH-only mode, it shows about 16MH/s only (and low memory controller load in GPU-Z) and I see this speed for about 20 seconds, then it shows 24.6MH and works fine. For dual mode it shows full speed immediately. Unfortunately, I have no idea why GPU works slowly within first 20 seconds, it is something related to drivers.
2. I close the miner and apply some changes in clocks: memory 2000 -> 2100, core 1300 -> 1100. When I start miner, I see that it applies new clocks in about 10 seconds, but still shows 18MH/s only for first 20 seconds. Then it shows about 25.5MH.
Note that I use default ROM so these speeds are not high.
3. I close miner and apply new clocks again: -cclock 1000, -mclock 2050. Same behavior: it shows low speed at start, then normal speed for these clocks. GPU-Z shows changes in clocks in about 10 seconds after start.
So right now I cannot reproduce the issue with new clocks: in my tests new clocks are applied immediately, I don't need to restart the miner or reboot the system.