CEL is not really an issue. Depending on the state of the vehicle when the module is changed, it could possibly trigger a code. When I originally swapped the replacement module in, the vehicle had been parked overnight and I purposefully left the keyfob in the house rather than have it in my pocket so when I approached the vehicle it would not "wake" up. once the module was swapped, I walked out with the keyfob and pressed the unlock button on the keyfob while standing next to the left rear of the vehicle. I heard the fuel pump cycle when I unlocked the door so I knew things would likely be fine, no programming vs what was all over the Internet.
After starting and allowing the vehicle to run for about 10 minutes, I fully shut down the vehicle so the dash and electronics were shut down, swapped module, no issue.
If for some reason the vehicle was not in a full shut down state, there may be polling of some modules and this may have been what triggered the CEL/code.
As for CarByte, I believe the OBDII App that works with it is OBDFusion or an OE version of OBDFusion. I know this App quite well, one thing that OBDFusion tends to limit is being able to clear codes while the engine is running, even if prompted to clear codes with the engine running, it may not clear them. Also with the newer CAN vehicles, it is possible that the CAN system limits under what conditions the code can be cleared.
In any case, OBDII standard is designed to clear codes automatically after a specified number of Start/Run cycles, depending on the code, this could be a few Start/Run cycles up to 10-20 Start/Run cycles if the code does not reappear the CEL will go out if the fault has not been seen again but there may be History trouble codes stored.