Companies are holding on to their money because if they move it the government is there to snatch as much of it as they can.
For 15+ years now, there has been no recovery, only some markets were manipulated and hoodwinked by insider bankers, who were bailed about to the tune of hundreds of billions...Starting with Bush and his wealthy dynasty associates.
Obama = 1929
Re: “A better way would be for companies to buy other companies.”
Or, they could distribute idle cash to their shareholders as a one time dividend.
Then, shareholders could decide if they wanted to invest that money in other companies, or, shareholders could spend the dividend as they please.