If you're using Magento Enterprise Edition, take a look at Bridge Connect, which is a service specifically built to integrate with common ERP packages. If you aren't using EE, or if you don't want to pay for Bridge Connect, your best bet is to use the webservices that Magento provides for this task.
The big advantage of using these is that they are relatively stable between upgrades, so you won't completely break your upgrade path. The downside is that they are slow. Silly slow. And they leak memory like a boat made of toilet paper. In my experience, though, this is nothing compared to the trouble of upgrading handwritten code when Magento decides to change the underlying database.
As for a POS, in simple cases the Magento admin sales interface may suffice. You can take CC payments, arrange shipments, etc, and your orders will be approximately the same as if they had been submitted from the web. If not, you're back to webservices if you want them in the Magento system.
If your ERP system is handling fulfillment, you may be able to skip the step of adding POS orders to Magento. Let the ERP system be the system of record for inventory, and just update Magento w/ the new accurate inventory quantities periodically.
Hope that helps.
Thanks,
Joe
EDIT:
Magento has not stated any plans to change the database that I am aware of, but it has happened several times in the past without warning, and it would be risky to assume that nothing will change. Varien does not make any guarantees about the database format, or whether it will be changed significantly.
When such a change happens, the APIs and objects in the platform are adjusted accordingly, so keeping it above the database level will keep you insulated from those changes, and make the job of evaluating new releases for compatibility that much easier.