If the transaction was not picked up by a miner (malformed, fee too small), then eventually nodes would "forget" it by removing it from their memory pool. Your wallet would recognize this situation and would allow you to re-spend your coins, as otherwise once any coins are sent they would become unspendable by that wallet if they never got confirmed.
That is not correct for all wallets and certainly isn't correct for the OP wallet.
Bitcoin Core v0.9.1.0
The Bitcoin Core wallet will continually attempt to rebroadcast a transaction forever. It doesn't allow tx which won't be relayed to be created and then assumes it will eventually be included in a block. There are ways to double spend the original but they user intervention and third party utilities.