From my understanding of the knife tool I believe your first idea would be very complex to integrate with the current code. Currently, the knife tool is entirely reliant on the existence of a singular face which the mouse is currently hovering over. It uses this face for the majority of calculations and data it needs. This is also the reason it is not so easy to add the ability to create edges without a face using the tool (presuming this is what you mean by fill ability).
It may be possible to raycast and retrieve multiple faces specifically in the case of edge and vertex snapping and implement what you propose. If I do decide to take a look into this it will be not for a while.
As for bisect tool ability, for the time being I am going to focus on the project proposal and some feature requests. Perhaps further down the line a design proposal could be made for merging the knife and bisect tools.