The wrong mp_cost being returned would be a mafia bug... but it's technically correct, and therefore not a bug, as the cost is 3... just not outside combat.
You could make a FReq. Potential requests: default the mp_cost of dual-skills to the out-of-combat cost; default to whichever cost is higher; split in and out of combat prices entirely and have two different functions.
Any of those three could solve this. Unfortunately, for script-writing purposes, there doesn't currently appear to be any easy way to differentiate lasagna bandages (combat and non-combat healing) from saucy salve (combat healing only), for example, without manually parsing the classskills.txt data file...