Is there any morally valid reason to evict a tenant other than nonpayment of rent? For bad behavior that should be between them and the police, not you.
Sure: it's morally valid to evict someone who violates any legally-enforceable provision in the lease agreement they signed.
Absolutely. The law with respect to behavior has almost no force within multi-tenant buildings. It is primarily subject to contract law. The police have no power there. Tenants that repeatedly violate the contractual rights of other tenants have few remedies beyond eviction.
A single asshole can destroy an entire building.
Tampering with smoke detectors
Not all bad behavior meets the threshold of police intervention.
Here's a nearly-strawman-but-definitionally-valid example: a landlord may want to remove a tenant who's being unusually hard on the place and accelerating the wear-and-tear. Could be serious enough that paying the tenant to go away would be cheaper than the cost to remediate the damage accrued over the length of the contract.
I'm sure there's lots, but lease says no X, tenant insits on doing X seems like a reasonable thing to evict about, but not a reasonable thing to ask the police to adjudicate.
At least as long as 'no X' is a reasonably moral thing to restrict. So no pets, no working on cars in the parking lot, no smoking, no loud noises/no more than N police noise complaints, etc. At least my moral code allows one to form a contract that restricts such thing and that when one party refuses to honor a (reasonable) contract, the other party should be able to require the breach be mended or the contract be ended, and that some breaches can't be mended.
Some things that might not be stated in a lease but would also be reasonable to evict for could include no interfering in the quiet enjoyment rights of neighbors, no storing of dangerous goods, no causing dangerous/unsafe situations.