Hi Veden, this is the intended behavior. If a bot or the player fullfilled the replacement request, the demand icon vanishes immediately. The actual replacement happens only at the beginning of the next maintenance cycle. This is to keep the amount of maintenance events at a reasonable level even in bigger bases.
Nevertheless, the delay between action and reaction is probably an issue in terms of UX, I guess. Would you like to have some status timer, e.g. something like "Replacement completed in [mm:ss]"?