Often times, you know a proposal doesn't work, and yet you don't have chops to implement a better a solution. In that case, keeping quiet is the best solution; otherwise, you just make enemies.
Depending on what's the worst outcome of "wouldn't work", keeping silent might be worse than making enemies.
i often think of software as a series of problems. i don't have to worry about solutions initially. when we have polished off solutions to all of the truly immediately important problems - within some reasonable/useful level of engineering tolerances - the software can be thought of as done, for a time. just my opinion.