I don’t think this needs to be in Cargo specifically. There are already tools out there for listing the licenses of your dependencies. For example:
$ cargo lichking list
warning: IANAL: This is not legal advice and is not guaranteed to be correct.
MIT: strsim, termion, owning_ref, textwrap, clap, void, redox_termios, atty, redox_syscall
BSD-2-Clause: cloudabi
BSD-3-Clause: fuchsia-zircon-sys, fuchsia-zircon
ISC: rdrand
Unlicense / MIT: utf8-ranges, grep-printer, ignore, ripgrep, pcre2-sys, grep-pcre2, pcre2, walkdir, grep-searcher, termcolor, winapi-util, aho-corasick, grep, grep-regex, grep-cli, grep-matcher, globset, byteorder, same-file, wincolor, memchr
MIT / Apache-2.0: rand_isaac, winapi-x86_64-pc-windows-gnu, rand_os, num_cpus, stable_deref_trait, rand_chacha, ucd-util, bitflags, libc, scopeguard, cfg-if, unreachable, memmap, rand_xorshift, log, fnv, serde_derive, smallvec, encoding_rs_io, unicode-width, base64, rand_hc, quote, unicode-xid, encoding_rs, serde, rand, simd, itoa, regex-syntax, lock_api, winapi-i686-pc-windows-gnu, bytecount, proc-macro2, winapi, crossbeam-channel, crossbeam-utils, thread_local, lazy_static, serde_json, rand_core, rand_pcg, regex, parking_lot, syn, parking_lot_core
Apache-2.0 / BSL-1.0: ryu
I personally just check this output every so often (particularly after a cargo update) to make sure that there are no viral licenses, but you could just as easily add a CI check or something and grep for common viral license names.