Câu trả lời:
Không chỉ vì khả năng đọc của con người, có nhiều lý do lập trình để tách các ứng dụng 32 bit khỏi 64 bit. Xem xét thư mục "Tệp chung". Nếu bạn có ứng dụng 32 bit và ứng dụng 64 bit sử dụng thư mục Tệp chung cho một tệp có cùng tên, bạn sẽ sử dụng bất kỳ ứng dụng nào được cài đặt trước. Cũng có những khác biệt trong cách Windows trình bày các thư mục này cho chính các ứng dụng, mặc dù tôi không đủ quen thuộc để giải thích chúng.
Cuối cùng, đây là bước đầu tiên trong nhiều bước chuyển sang các ứng dụng 64 bit gốc. Việc trình bày các thư mục khác nhau giúp phân biệt rõ ràng cho các nhà phát triển và người dùng, và "Tệp chương trình (x86)" 32 bit là một người kỳ quặc.
Như bạn đã viết trong câu hỏi của mình, các thư mục này được phân biệt các thư mục thiết lập mặc định cho các ứng dụng 32 bit và 64 bit.
Một thiết lập lai thú vị là SQL Server 2005: nếu bạn cài đặt cài đặt phiên bản 64 bit, các tệp công cụ SQL chính sẽ được sao chép trong thư mục Tệp chương trình, các công cụ chỉ có 32 bit sẽ được cài đặt trong "Tệp chương trình (x86) "
Bạn đã đề cập đến lý do: để phân biệt các tệp chương trình 32 bit với các tệp chương trình 64 bit. Khi bạn chạy chương trình 32 bit trên bản cài đặt Windows 64 bit, Windows sẽ chuyển hướng các yêu cầu thư mục từ chương trình đó cho% ProgramFiles% [C: \ Program Files trong phiên bản tiếng Anh] sang x86 thay thế [C: \ Program Files ( x86)]. Do sự chuyển hướng im lặng này, các chương trình 64 bit và 32 bit có thể cùng tồn tại mà không can thiệp lẫn nhau. (Ví dụ: Windows 64 bit bao gồm cả phiên bản Internet Explorer 64 bit và 32 bit.) Windows cũng thực hiện các chuyển hướng tương tự cho các tệp của chính nó và cho các khóa đăng ký.