Cross cutting makes sense.  But this is where cohesion plays a huge part.

in .NET I find assemblies make this more difficult.

Playing in Dart, I find that cohesion is cognitively better because of the "single assembly" concept.

Feature slices is a simple way to demonstrate cohesion.