The accounting side isn't my forte, and job cost is far from an area of intimacy, so take these opinions with a bit of skepticism. From what little I know of the customer service management system, I suspect it might offer you the best options for tracking costs, especially if you have things set up under an existing repair agreement.
The next most effective might be the equipment maintenance option. It has been years since I worked in that environment (It was World 6.1) but as I remember the costing was handled a bit differently (more like job cost) than manufacturing, but I also seem to remember that the maintenance WO program did some different behind the scenes accounting than the manufacturing work order program, and one of these differences was the creation on the fly of an "estimate" and "cost standard". I'm very rusty here, so I would encourage you to play a bit and test/verify that what I'm saying doesn't result from time distorted memory.
The "manufacturing" solution may be the simplest to implement from a materials perspective, but might be the most restrictive from an accounting perspective. The effort to restore a reparable to a serviceable will vary from time to time based on the amount of wear or type of damage to be repaired/restored. I suppose you could pick one "common" repair BOM and routing and use that for the cost rollup of the R123xyz. That will give you a Standard Cost based on some standard cost component values. Now, any deviation from that "M" BOM and "M" routing for the R123xyz will result in variances. You may want to experiment with using P31410 to attach BOMs and routings (even preloaded non "M" types versus attaching them manually to see the differences, if any, on the planning variances. If you further digress from the parts list and routing with extra or substitute parts, or with extra or substitute operations, you will get your manufacturing variances. This assumes you are doing standard costing. In OW at or after Xe there is capability to do manufacturing at actual (not standard) cost. I do not know if that ever deployed to World, and if so, at what release level.
The bottom line is TEST, TEST, and TEST some more. See what options seem to work best for your particular situation. Then simulate and test some more with scenarios developed with user input. The more you test before you try to turn on your model in your live production environment, the happier everyone will be. Good luck, and let us know how it turns out.