There are two types of fees in Bitcoin.
a) optional fees (which settxfee specifies) which can be used to make the tx higher priority. A fee of 0.000001 BTC is essentially worthless you might as well leave it 0, no miner is going to give your tx a higher priority when it would take one million such tx to earn a single Bitcoin.
b) mandatory fees. if the tx is low priority (due to size or age) you MUST pay the min mandatory fee. If you don't (i.e. modifying the client) then compliant nodes will refuse to forward your tx considering it spam. This mandatory fee isn't intended to produce revenue, it is intended to protect the network from spam and DOS attacks.
https://en.bitcoin.it/wiki/Transaction_fees#Rules_for_calculating_minimum_feesThe simple rule of thumb on min tx fee is "one bitcoin day". If you receive 1 BTC and wait 1 day before spending it then you can send it for free (or whatever you have specified as an optional fee). If you receive 20 BTC you would need to wait 1/20th of a day (~8 blocks) before you can send it for free. Note the amount you are spending doesn't matter. What matters is the AGE and VALUE of the input.
bitcoind settxfee & the conf paytxfee both set the optional fee (can be set to zero). You can't override the mandatory low priority fee in the default client without modifying it at the source code level.
WARNING: modifying the spam prevent rules in the source code can result in your tx getting "stuck" and rejected by miners and compliant nodes.Your transaction is low priority and thus is required to pay the min mandatory fee of 0.0005 REGARDLESS of what you specify as an optional fee. If your tx was high priority (larger than one bitcoin day in coin age) then there would eb no min mandatory fee and your optional fee (even 0.0 BTC) would apply.
As above the rule of thumb is "1 bitcoin day" in coin age for the input but lets calculate the actual priority.
priority = sum(input_value_in_base_units * input_age)/size_in_bytes
priority = (5779899 * 78 ) / 278
priority = 1621698.281
The treshold for high priority is priority = 57,600,000
1,621,698.281 < 57,600,000 therefore tx is low priority and must pay the min mandatory fee to protect the network. If you modified the client source code you could remove this restriction however each node and miner will also recalculate priority and they will see the tx as invalid (low priority without required min fee).