Connecting USB devices with host microprocessors on the same board without any intermediate connectors is called "embedded USB". Many laptops and desktops embed USB devices on-board. In some sense the signal integrity can be even better, assuming HS differential traces are implemented with 90-Ohm impedance, since any connector is always a deviation from PCB trace and thus an impedance mismatch is introduced.
However, there is one caveat that is frequently is overlooked. Normal USB connect protocol involves VBUS detect on device side of connection, prompting the device to start "connect" protocol by pulling up D+ (or D- in case of LS device) line AFTER the VBUS is received (after cable plug in). The problem is that in embedded design the VBUS (and device power) is assumed as always on, prompting USB devices to assert the connect event (pull-up) BEFORE the host is powered up, booted up, USB controller configured, and USB software stack is loaded making the host ready to communicate. In many legacy host hardware this premature assertion of connect state can disrupt normal host set-up functionality, and likely some additional software work-arounds might be necessary. It might work, but in some number of power-up cycles the embedded USB connection can fail.
If a designer doesn't want power-on surprises, the host should implement an additional GPIO line (analogous of VBUS) that would hold embedded USB devices in unconnected state until the host boots up and is ready to communicate via USB. Or use that extra GPIO to power-up embedded USB chips only after the host USB stack is ready.