I started bitcoind with listen=0 and for good measure maxuploadtarget=0 in my bitcoin.conf. After 4 days of running using minimal bandwidth, it started using all my available bandwidth, without any indication in the log. Restarting bitcoind made it return to the expected behavior. I remember this happened in an earlier version, but only a single time and I could never reproduce it. The log startup shows the settings were correctly set in the conf file:
2016-04-07 21:02:11 Bitcoin version v0.12.0 (2016-02-17 09:40:03 +0100)
2016-04-07 21:02:11 InitParameterInteraction: parameter interaction: -listen=0 -> setting -upnp=0
2016-04-07 21:02:11 InitParameterInteraction: parameter interaction: -listen=0 -> setting -discover=0
2016-04-07 21:02:11 InitParameterInteraction: parameter interaction: -listen=0 -> setting -listenonion=0
2016-04-07 21:02:11 InitParameterInteraction: parameter interaction: -whitelistforcerelay=1 -> setting -whitelistrelay=1
2016-04-07 21:02:11 Using OpenSSL version OpenSSL 1.0.2g 1 Mar 2016
2016-04-07 21:02:11 Using BerkeleyDB version Berkeley DB 4.8.30: (April 9, 2010)
2016-04-07 21:02:11 Default data directory /Users/y/Library/Application Support/Bitcoin
2016-04-07 21:02:11 Using data directory /Users/y/Library/Application Support/Bitcoin
2016-04-07 21:02:11 Using config file /Users/y/Library/Application Support/Bitcoin/bitcoin.conf
2016-04-07 21:02:11 Using at most 125 connections (8192 file descriptors available)
2016-04-07 21:02:11 Using 2 threads for script verification
2016-04-07 21:02:11 scheduler thread start
2016-04-07 21:02:11 HTTP: creating work queue of depth 16
2016-04-07 21:02:11 No rpcpassword set - using random cookie authentication
2016-04-07 21:02:11 Generated RPC authentication cookie /Users/y/Library/Application Support/Bitcoin/.cookie
2016-04-07 21:02:11 HTTP: starting 4 worker threads