Everything is legal until it is made illegal. Bartering for goods and services is not illegal, at least in the US, and Bitcoin falls under that legal realm.
There is no law hindering any company's ability to accept Bitcoin as payment besides the requirement to pay taxes on the fair market value of the Bitcoins.
When you engage in a trade transaction (as opposed to cash), the "income" from the transaction is the fair market value of the items/assets/property exchanged, at the time of the exchange.
The problem is that taxes aren't due until the end of the quarter (for businesses) or year (for individuals). Even if the value of the bitcoins has dropped, you owe taxes on the value when received. On the other hand, if the value has gone up, you don't owe any additional taxes until you use the appreciated bitcoins in another transaction.
There is no law hindering any company's ability to accept Bitcoin as payment besides the requirement to pay taxes on the fair market value of the Bitcoins.