Is there a way to know the maximum allowed packet I can send via pcap without actually needing to send and fail?
Not from pcap. It might, at least on some platforms, be possible to determine the interface MTU, which might indicate whether jumbo frames are supported (if the MTU is 1500, no; if the MTU is bigger than 1500, yes, with the limit being the MTU + 14 bytes for the MAC header). The way that would be done is platform-dependent, so it might be useful to provide a "get maximum packet size" call in pcap; it doesn't have one currently, however.
I cannot find any documentation on how pcap handles such large packets
pcap handles those packets by handing them to the OS :-) What happens after that is a function of the OS's code.
(My environment - if it matters, is Windows, but the code is cross-platform and I expect the same "issues" on Linux)
Your code may be cross-platform, but libpcap/WinPcap's code, whilst it provides a cross-platform API, is most definitely not cross-platform; it is implemented very differently on different platforms, so you may or may not see the same issues on various OSes.