The very nature of an engine fire suggests that either fuel or lubricating oil is going where it shouldn't be going. Cutting off the source of fuel and the source of ignition is essential in extinguishing a fire. An extinguishing bottle might put out the fire, but if the engine is still running, then it's getting fuel and producing heat... it will probably just reignite.
The B29 engine fire situation was more a matter of desperation than anything. My great uncle was a B29 pilot, killed when the plane crashed on takeoff due to engine failure. The early B29's were prone to engine fires when the engine was under very heavy load, such as during takeoff. If they were fully loaded with fuel and bombs, they couldn't climb or even remain airborne for long on three engines... this was wartime and certain risks were justified to continue the war effort. Modern airliners can climb after losing an engine, and the B29 could lose engines and remain in the air later in flight after it had burned off a good deal of it's fuel load, or better still, disposed of its bombs.
If a B29 engine caught fire on takeoff, it was kept running to try to gain enough altitude to bail out, only because the alternative was definitely to crash. Typically, though, either the engine failed and the plane went down, or the fire weakened the wing and it came off.
The problem was finally solved when they replaced the carburetor on the R3350 engine with fuel injection, but they lost quite a few crews in the process.