Legs or Arms, doesn’t matter, it’s basically the same. I didn’t look at how the arms were done, but generally there’s 2 ways of doing it. One way of doing it is to have your IK chain (upper arm, lower arm, hand) and then have deform bones that copy the rotation of the IK chain. Those deform bones can be used as your FK limb by just turning of the copy rotation constraints. This is how I used to do it.
Nowadays, I use 3 sets of bones, one for the IK, one for the FK, and a 3rd set for the deform bones. Each deform bone has 2 copy rotation constraints on them, one copying the IK rotation and one copying the FK rotation. When the copy rotation of IK bones is on, copy rotation of the FK bones is off. I prefer this method with the deform bones in their own collection so if you want to work on weight painting you can easily find the deform bones.
Of course, this is all a matter of personal taste and end usage. If all you are doing is the character walking around doing simple tasks, having both arm limbs in IK or FK would be fine. Now if you want the character to do a hand stand on one hand, and wave the other hand, then you might want one arm to be IK and one arm to be FK.
Likewise for the legs, if the character is doing simple tasks, IK might be all you’d need. But if the character is going to be jumping and tucking the legs in during the jump, I’d want to do that with FK bones. But it’s all up to you and your use case.
Since you know python, to do FK->IK snapping, or IK->FK snapping, have a look here: https://blenderartists.org/t/what-is-the-best-way-to-do-fk-ik-snapping/1427362 The last post in that thread has an up to date (blender 4.0.2) example of how to do snapping with python.
Randy