I'm surprised this still isn't fixed; on a Debian stable (Jessie/8) system with ethtool installed, /etc/network/routes does not work and I traced the problem to the 00check-network-cable script having a bug relative to ethtool.
If ethtool is installed 00check-network-cable tries to run it, generates an invalid variable and the entire chain of scripts in /etc/network/if-up.d fails. The fix I have implemented locally is to change line 72: local LINK=$($ETHTOOL "$IFACE" 2>&1 | grep "Link detected"|| :) with: local LINK="$($ETHTOOL $IFACE 2>&1 | grep 'Link detected'|| :)" which alleviates the problem with the leading space and the bad variable name. Note that $IFACE doesn't seem to need quotes. If you wanted to be particular I guess ${IFACE} might be sufficient or this could be fixed in some other way. But this is a terrible bug to have been allowed into a Debian stable release; since this isn't a security bug is probably never going to be fixed until the NEXT stable release!