Is there a known way to prevent ASICs from being made? I know Monero is trying by frequently changing or randomizing the algorithm itself, but there is still the problem of pools.
Easy. with pow algo updates if needed. Bitmain learned swiftly to not develop asics for monero after their first attempt to fuck up the network.
ASIC bring additional centralization pressure without imposing a cost on the maker of the ASIC, it rewards the ASIC maker, it makes centralization even more profitable.
A malicious pool can pay to rent the POW by whoever has the general purpose HW and do what they want with it, there is no need to actually own any hardware, ASIC or otherwise to get-
-Majority POW power, all it takes is paying above market rate to rent the hash in a pool. There is no way around that. However, there are non-51% attack reasons why ASICs are bad.