yes they both mean company but empresa is related to other distinct words for businessman, entrepreneur (empresario/a) where compania can also mean when people keep each other company. I have used that "barrier" to seperate the words in my head so when related to business etc I think empresa, and when related to people together I think compania.
Yes. Also "empresa" has another meaning that "compañía" doesn't have. It means "endeavor" (also in English "enterprise" means "a project or undertaking, typically one that is difficult or requires effort").
In colloquial speech, they are perfectly interchangeable synonyms. In business jargon there might be some difference which I don't really know.
Thanks for weighing in with your perspective. It's very helpful.
"compañía" also is used to talk about different kinds of groups formed to pursue a common goal such as, a dance company or a company of soldiers. You would not use empresa in this way.