It would be more accurate to think of the transactions API as a way of creating a record of a payment processing task that was committed elsewhere or at another time. Creating a transaction record, regardless of the details included within, would not cause any kind of payment charge to occur, gift card, credit card, or otherwise. This is why creating a transaction record with valid gift card details does not actually action a payment processing task to occur - it's not meant to happen that way.
Gift cards are essentially the same as Credit cards, as far as internal processing is concerned. In order to charge one via API, you would need to have your app configured as a sales channel.