Such a machine could even charge fees depending on its $$ stock.
Imagine the shop where it stands would only have to report issues and keep it plugged in. Supply with bills if running low and removal if running full could be done by its customers.
On a machine that is low on $1 and $20, high on $10 and $100 and ok on $5 and $50 bills. The fees could read:
3% for buying and selling bitcoins
Balancing my bill reserves
0% for buying with up to 20 $1 bills
0% for buying with up to 7 $20 bills
-1% for selling worth up to 7 $10 bills
-1% for selling worth up to 25 $100 bills
People could subscribe to take these special offers, basically doing the maintenance loosely organized for a small fee.
Down side would be that the machine would tell when it had a lot of money inside but the machine could also pretend to never hold more than $5000 in the supermarket or $500 outside at the corner. On the other side, if I can throw in $10000, take the bitcoins and take back the $$, too, this obscuring its balance would not help much.
This is too complicated, imho.
Many bank ATMs already deploy state of the art cash recycling mechanisms, USB connected, simple protocol, the host tells the mechanism what amount to issue, alternatively, it tells the host what amount was just deposited. The actual balancing of the cash is done fully automatically, the more advanced units also can output message when certain denomination bin get's low or empty.
Something like this will reduce the workload required to maintain a Bitcoin ATM, although justifying the cost of such automation is a completely different matter.