I am wondering why every company doesn't keep their product a trade secret? Then almost nobody would be able to replicate the product instead of patenting, which reveals the inner working of the products. Patents expire after 20 years after which time anyone can implement the product at no profit to the inventors.
I certainly cannot speak to why a particular company chooses one form of intellectual property protection over another, but trade secret law has a few limitations. First, a trade secret is protected only against misappropriation (e.g., acquisition through improper means or breach of confidence). Therefore, a trade secret provides no protection against independent development. Second, there is some uncertainty with regard to whether a court will ultimately find the information sought to be protected actually constitutes a trade secret. As such, one doesn't know if one's purported trade secret is truly enforceable until a court tells it so. The factors considered by courts in evaluating whether information constitutes a trade secret include:
As part of a trade secret claim, the plaintiff also has the burden of proving that the information was wrongfully acquired by the defendant.
Not every product innovation is incapable of being independently developed (or reverse engineered) given enough time, money and developers. The exclusionary rights provided by a patent allow a patent holder to enjoin the infringer or receive monetary damages from the infringer, even if they independently developed the infringing technology. Of course, patents have their negatives as well, including cost and, as you mentioned, the disclosure requirements and limited lifetime.