Either way, both has tradeoffs. What I personally prefer is the non-asic pow approach.
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.
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.