The credit card transaction isn't about the specific money. A Bitcoin transaction about this Bitcoin A is different from one about this other Bitcoin B. If I do two offline transactions paying with Bitcoin A, but keep Bitcoin B each time, then even though I received goods worth two Bitcoins, the blockchain says only one merchant gets Bitcoin A and neither gets Bitcoin B. But if I do two $100 credit card transactions, those aren't for the "same" $100, when settlement is completed two $100 transactions adds up to $200.
Yes, but a reasonable bitcoin wallet wont let you spend the same coin twice, even if offline. As far as I know, none of the common wallet software that support offline transactions will let you do this by accident.
Credit cards suffer from a similar problem, the transactions will not necessarily go through when you get online.