In theory, sure. The reality is that there are going to be a dozen or so teams that just won't be able to turn a profit by spending to the floor. Personally, I think they should get rid of a "team" cap and simply impose a "player" cap. This way, big market teams can still spend whatever they like without over-inflating individual player salaries, while small market teams don't have to worry about crippling their bank roll.
but in that example you'd still have teams inflating prices because they'd give many players max contracts.
For instance, Toronto could afford to basically give their entire top 2 forward lines a max-salary contract, and would be wise to do so. That would still drastically inflate prices.