In v3, I haven’t bother with listen-only. Looking at connections to api.openvehicles.com, all but 2 vehicles have feature 15=1 (and those are probably mistakes by the end-user).
In v2 I abstracted the hardware interactions necesary to write to the canbus into a function void vehicle_nissanleaf_send_can_message(short id, unsigned char length, unsigned char *data). In v3 we call canbus::Write(const CAN_frame_t* p_frame). Do we want to add a similar simpler "send to this buffer with this can id" method to the canbus object? The Leaf doesn't use any of the extended can features so a simple interface for the simple case seems to make sense. For the moment I've implemented it within the leaf codebase, see void OvmsVehicleNissanLeaf::SendCanMessage(uint16_t id, uint8_t length, uint8_t *data) in the pull request.
No harm in adding that, if you think it is useful. Please go ahead.