SMART was originally an extension of ATA. It seems most tools now still only support (S)ATA because of that. Comparison of S.M.A.R.T. tools.
As for model detection, I'm guessing the problem comes from the same direction. Probably lspci still prints the correct device type. For instance on my system:
$ sudo lspci -kv ... 04:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM951/PM951 (rev 01) (prog-if 02 [NVM Express]) Subsystem: Samsung Electronics Co Ltd NVMe SSD Controller SM951/PM951 Flags: bus master, fast devsel, latency 0, IRQ 16, NUMA node 0 Memory at dfa10000 (64-bit, non-prefetchable) [size=16K] I/O ports at d000 [size=256] Expansion ROM at dfa00000 [disabled] [size=64K] Capabilities: [40] Power Management version 3 Capabilities: [50] MSI: Enable- Count=1/8 Maskable- 64bit+ Capabilities: [70] Express Endpoint, MSI 00 Capabilities: [b0] MSI-X: Enable+ Count=9 Masked- Capabilities: [100] Advanced Error Reporting Capabilities: [148] Device Serial Number 00-00-00-00-00-00-00-00 Capabilities: [158] Power Budgeting <?> Capabilities: [168] #19 Capabilities: [188] Latency Tolerance Reporting Capabilities: [190] L1 PM Substates Kernel driver in use: nvme